SQL Server 2008 R2를 사용하고 있습니다. Windows NT 6.1 (빌드 7601 : 서비스 팩 1)에서 Microsoft Corporation의 Standard Edition (64 비트)에 대한 자세한 내용은 Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) 2010 년 4 월 2 일 15:48:46) (하이퍼 바이저). 나는 SQL 서버 및 프로 시저/트리거를 처음 사용합니다. 나는 트리거를 만들려면 다음 코드를 (그것은 작동) : 트리거가 아직 존재하지 않는 경우트리거 문을 만들 때 "IF NOT EXISTS"를 추가하는 방법
CREATE TRIGGER [dbo].[Insert_WithdrawalCodes]
ON [dbo].[PupilWithdrawalReason]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
UPDATE [dbo].[PupilWithdrawalReason] SET DateCreated=dbo.SYSTEMTIME()
WHERE WithdrawalCodeID IN (SELECT WithdrawalCodeID FROM inserted)
END
어떻게 조건 만 만들려면 어떻게해야합니까? 여기서 내가 뭘 잘못하고 있니? Stackoverflow "존재하지 않는 경우"좋은 예제가 있지만 CREATE 함께 작동하도록 가져올 수 없습니다. 여기 내 실패의 노력 중 하나입니다
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type = 'TR' AND name = 'Insert_WithdrawalCodes')
exec('CREATE TRIGGER [dbo].[Insert_WithdrawalCodes] ON [dbo].[PupilWithdrawalReason] AFTER INSERT AS BEGIN SET NOCOUNT ON; UPDATE [dbo].[PupilWithdrawalReason] SET DateCreated=dbo.SYSTEMTIME() WHERE WithdrawalCodeID IN (SELECT WithdrawalCodeID FROM inserted) END')
GO
내 fa를 업데이트했습니다. 예를 들어. "exec"코드가 작동하지 않는 이유는 무엇입니까? 작성시 내 구문이 잘못 되었습니까? – thebiggestlebowski