CREATE TRIGGER必须是批处理中的第一条语句。

24

我有以下触发器:

 CREATE Trigger enroll_limit on Enrollments
 Instead of Insert
 As
 Declare @Count int
 Declare @Capacity int
 Select @Count = COUNT(*) From Enrollments
 Select @Capacity = Capacity From CourseSections
 If @Count < @Capacity
 Begin 
      Insert Into Enrollments Select * From Inserted
 End
 GO

我收到了一个错误消息,内容是:

'CREATE TRIGGER' 必须是查询批处理中的第一条语句。


可能是重复问题:https://dev59.com/32PVa4cB1Zd3GeqP3Cmh - WholeLifeLearner
2个回答

50

错误信息“'CREATE TRIGGER'必须是一个查询批处理中的第一条语句。”通常发生在前面的一组语句没有终止符GO时。

因此,我建议在前一批语句的末尾添加GO


3
值得注意的是,“GO”需要单独成行。(我通过曲折的方式发现了这一点) - Minh Tran

0

如果您正在尝试使用SQL Server Management Studio,请参考以下另一种适用于我的选项:

在左侧窗格中,右键单击数据库并选择“新建查询”。

这将连接到特定的数据库。现在,您可以将创建触发器语句作为打开的查询窗口中的第一条语句输入。无需使用“use”命令。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接