Sql server 使用SQuirreL SQL Client创建SQL Server触发器时出现的问题

Sql server 使用SQuirreL SQL Client创建SQL Server触发器时出现的问题,sql-server,tsql,triggers,squirrel-sql,Sql Server,Tsql,Triggers,Squirrel Sql,最近,我一直在使用SQL Server数据库,我试图使用SQuirreL SQL Client为一些表创建一些触发器,但由于某些原因,我无法消除以下令人讨厌的错误消息: 错误:“CREATE TRIGGER”必须是查询批处理中的第一条语句。 SQLState:s001 错误代码:111“ 我试图执行的查询如下(我从一个非常简单的触发器开始,以确保语法正确): 当我试图在MicrosoftSQLServerManagementStudio Express中执行完全相同的查询时,它执行得很好。我的问

最近,我一直在使用SQL Server数据库,我试图使用SQuirreL SQL Client为一些表创建一些触发器,但由于某些原因,我无法消除以下令人讨厌的错误消息:

错误:“CREATE TRIGGER”必须是查询批处理中的第一条语句。 SQLState:s001 错误代码:111“

我试图执行的查询如下(我从一个非常简单的触发器开始,以确保语法正确):

当我试图在MicrosoftSQLServerManagementStudio Express中执行完全相同的查询时,它执行得很好。我的问题是:是否有其他人在使用SquirrelSQL客户机时遇到过类似的问题?如果是,您是如何消除此错误的

编辑:


我正在将SQuirrel SQL v2.6.8与Microsoft SQL Server JDBC驱动程序2.0一起使用,并且我正在连接SQL Server 2005。

通常,当尝试在同一批中运行多条语句时,会出现该错误,这些语句不允许是一批中的第一条语句。您可能需要在它们之间设置一个
GO
GO
不是一个SQL命令,而是到客户端工具来分离命令批。

我无法在SQuirrel SQL v2.6.8上使用针对SQL 2005 SP3(开发人员版)的v1.2.2复制此命令。

我遇到了相同的问题。通过谷歌搜索,我发现了这篇文章:


简言之,在CREATETRIGGER语句周围加上exec(“”)。此外,触发器语句中的任何单引号(')都需要更改为双单引号(“”)。

我在第一次收到所述错误消息时就了解到了这一点,但由于我尝试执行的查询实际上就是我在上面发布的查询,它不应该执行得很好,因为CREATE trigger语句是第一条吗(并且只有)语句在批处理中?我认为SquirreSQL首先在批处理中放入了其他内容。使用SQL探查器查看它实际发送的内容。然后查看是否可以在SquirreSQL中禁用该功能或提交错误报告。这并不是回答您的问题,但SquirreSQL不如Quest Toad(也有免费版本)我想,你可能想尝试一下,以避免头痛!哪个版本的SQuirreL?哪个jdbc驱动程序?很有趣。我也在使用SQuirreL SQL v2.6.8和SQL Server 2005,但我使用的不是你提到的驱动程序,而是Microsoft SQL Server jdbc驱动程序2.0。可能是驱动程序造成的?太棒了。非常感谢你的回答和帮助他做了一个精确的总结(就像你说的那样)。
CREATE TRIGGER meeting_overlap on adhoc_meeting
FOR INSERT
AS
DECLARE
    @myvar INT