我的脚本被封装在开始事务和提交事务中。 我甚至不能使用Go inbetween。 在我想禁用一个触发器,然后脚本要创建另一个 但是,当我同时执行两个语句,我得到了FOLL错误:'CREATE TRIGGER'必须是查询批次中的第一条语句
Msg 111, Level 15, State 1, Line 6 'CREATE TRIGGER' must be the first statement in a query batch.
我的代码是:
BEGIN TRY
BEGIN TRANSACTION
DISABLE TRIGGER [dbo].[trg_Beneficiary_After_Update] ON [dbo].[Beneficiary]
CREATE TRIGGER [dbo].[trg_Beneficiary_After_Update1] ON [dbo].[Beneficiary] FOR UPDATE AS
BEGIN
INSERT INTO [dbo].[Beneficiary_History]([Beneficiary_Id],[Customer_Id],[Beneficiary_Type],[Nick_Name],[Rib_Key],[Action_Flag],[Benef_No],[Original_Date],[Provider_Id],[Create_Date])
SELECT [Beneficiary_Id],[Customer_Id],[Beneficiary_Type],[Nick_Name],[Rib_Key],'U',[Benef_No],[Create_Date],[Provider_Id],GETDATE() FROM DELETE
PRINT 'AFTER Beneficiary Table UPDATE1 trigger fired.'
END
UPDATE [dbo].[Beneficiary] SET [Benef_No] = REPLACE (Benef_No, +2120, ++212) WHERE Benef_No like '+2120%'
DISABLE TRIGGER [dbo].[trg_Beneficiary_After_Update1] ON [$(oltpdb)].[dbo].[Beneficiary] ;
ENABLE TRIGGER [dbo].[trg_Beneficiary_After_Update] ON [$(oltpdb)].[dbo].[Beneficiary]
end
COMMIT TRANSACTION END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH;
需要看到代码... – VDK
简单地切换顺序? – jarlh
我无法在此发布代码。 – Priyanka