[sql-server] 테이블에 대해 트리거 SQL 서버 사용 안함
아래와 같이 하나의 proc을 만들고 싶지만 구문에 오류가 있습니다. 누구든지 문제를 지적 할 수 있습니까?
Create PROCEDURE [dbo].[my_proc] AS
BEGIN
DISABLE TRIGGER dbo.tr_name ON dbo.table_name
-- some update statement
ENABLE TRIGGER dbo.tr_name ON dbo.table_name
END
** Error Message : Incorrect syntax near 'ENABLE'.
답변
대신 다음 명령을 사용하십시오.
ALTER TABLE table_name DISABLE TRIGGER tr_name
ALTER TABLE table_name ENABLE TRIGGER tr_name
답변
;
SQL DISABLE
에서 키워드가 아니기 때문에 이전 줄은로 끝나야 합니다 . 예를 들면 다음과 같습니다.
BEGIN
;
DISABLE TRIGGER ...
답변
Mark가 언급했듯이 이전 문장은 세미콜론으로 끝나야합니다. 따라서 다음을 사용할 수 있습니다.
; DISABLE TRIGGER dbo.tr_name ON dbo.table_name
답변
새 행에서 TRIGGER ENABLE TRIGGER 또는 DISABLE TRIGGER를 사용한 후 GO, 예 :
DISABLE TRIGGER dbo.tr_name ON dbo.table_name
GO
-- some update statement
ENABLE TRIGGER dbo.tr_name ON dbo.table_name
GO
답변
다음은 트리거를 활성화 또는 비활성화하는 동적 스크립트입니다.
select 'alter table '+ (select Schema_name(schema_id) from sys.objects o
where o.object_id = parent_id) + '.'+object_name(parent_id) + ' ENABLE TRIGGER '+
Name as EnableScript,*
from sys.triggers t
where is_disabled = 1
답변
소스에서 직접 ENABLE TRIGGER를 실행하려면 다음을 수행하십시오.
우리는 다음과 같이 쓸 수 없습니다 :
Conn.Execute "ENABLE TRIGGER trigger_name ON table_name"
대신 다음과 같이 쓸 수 있습니다.
Conn.Execute "ALTER TABLE table_name DISABLE TRIGGER trigger_name"
답변
아래는 가장 간단한 방법입니다
코드를 사용해보십시오
ALTER TRIGGER trigger_name DISABLE
그게 다야 🙂