2013-03-27 4 views
-1

테이블에 트리거를 만들었으므로 이제이를 삭제하거나 변경할 수 없습니다. 테이블에 액세스 할 수도 없습니다. 어떻게해야합니까?트리거를 삭제할 수 없습니다.

트리거 스크립트 :

create trigger [Products].[InsertLessThen5InStock] 
on [Products].[Products] 
after update 
as 
BEGIN 
    DECLARE @ck int 

      select UnitsInStock from Products.Products where UnitsInStock<5 
    set @[email protected]@ROWCOUNT 
    print @ck 
    if @ck >0 
    BEGIN 
     DECLARE @mails varchar (200) 
     exec dbo.Manager_email @mails output 
     EXEC msdb.dbo.sp_send_dbmail 
     @profile_name =    'DefaultMailSender', 
     @recipients =    @mails , 
     @body =      'Products that will expire in less then 5 days', 
     @subject =     'Products that will expire in less then 5 days', 
     @body_format =    'HTML', 
     @query =     'EXECUTE MadCat.dbo.SaveTableAsHTML 
           @DBFetch =''select UnitsInStock from Products.Products where UnitsInStock<5''' 

    END 
END 
GO 
+1

왜 그것을 변경하거나 삭제할 수 없습니까? – PowerUser

+2

시도하고 삭제하거나 변경하기 위해 실행중인 스크립트는 무엇입니까? 어떤 오류가 있습니까? '나는 테이블에 접근조차 할 수 없다 '는 말은 무엇을 의미합니까? 당신은 당신의 문제가 무엇인지, 그리고 당신이 시도한 바에 대해 더 많이 * 구체적이어야합니다. – LittleBobbyTables

+0

나는 그것을 삭제하려고 gui 및 드롭 트리거를 던졌습니다 ... – DnL

답변

2

가 잠금을 얻을 수 없다는 불평 때문에, 그것은 어떤 프로세스가 독점적으로 테이블을 예약 한 것을 의미한다. 서버를 다시 시작한 다음 drop trigger 명령을 실행해야합니다.

drop trigger [Products].[InsertLessThen5InStock] 
+0

네, 그걸 시도해 보았는데 그게 작동하지 않았어. – DnL

+0

수동으로 떨어 뜨리면 그게 아무 것도 보여주지 않는다. 하지만 GUI를 사용하여 삭제하려고 할 때 "lock request time out period exceeded"라고 말합니다. 학교 프로젝트에서이 db에 대한 유일한 사용자 인 것 같습니다. – DnL

+0

다른 것 외에 다른 작업은 없습니다. 모든 것을 닫았습니다. 작업 관리자를 통해 sql을 닫은 다음 프로세스 트리를 끝내고 프로세스 트리를 종료하십시오. 테이블에서 선택할 수 없습니다. – DnL

관련 문제