Visual Studio 2013创建SQL触发器错误

Visual Studio 2013创建SQL触发器错误,sql,visual-studio,visual-studio-2013,Sql,Visual Studio,Visual Studio 2013,我试图在Visual Studio 2013中的SQL表上添加触发器,但遇到错误 SQL80001:靠近“文件结尾”的语法不正确 这是SQL代码: CREATE TRIGGER SomeMethod1 ON UserTable AFTER INSERT AS EXTERNAL NAME "Main.Site.Header1.OnEvent" 这是我第一次尝试SQL触发器,所以我可能错过了一些东西 有人知道问题出在哪里吗?在SQL Server中,双引号的作用与方括号相同,用于分隔

我试图在Visual Studio 2013中的SQL表上添加触发器,但遇到错误

SQL80001:靠近“文件结尾”的语法不正确

这是SQL代码:

CREATE TRIGGER SomeMethod1 
ON UserTable 
AFTER INSERT AS 
    EXTERNAL NAME "Main.Site.Header1.OnEvent"
这是我第一次尝试SQL触发器,所以我可能错过了一些东西


有人知道问题出在哪里吗?

在SQL Server中,双引号的作用与方括号相同,用于分隔对象的名称。例如:

SELECT * FROM "Customers"
这里不需要,但如果对象的名称很复杂,则需要使用双引号或方括号对其进行分隔

SELECT * FROM [Order Details]
SELECT * FROM "Order Details"
如果使用多个部分(如模式或数据库)引用对象,则必须对每个单独的部分进行分隔,而不是引用完整的名称,如中所示: 从“dbo”“客户”中选择* 不是

在您展示的代码中,您引用了完整的四部分名称:

"Main.Site.Header1.OnEvent"
外部名称需要三个部分,第一部分是程序集,第二部分是类,第三部分是方法。如果您有一个具有名称空间的类,那么它有一个由两部分组成的名称。根据上下文,我猜您真正想要的是:

Main."Site.Header1".OnEvent"

因为Site是名称空间,Header1是类,所以第二个参数需要用分隔符来表示复杂的名称,就像“Order Details”需要用分隔符一样,因为它包含一个空格。

这个博客可能会有所帮助。底部的注释可能很有用“您可以通过将脚本文件属性上的构建操作更改为“无”来解决此问题”。“我没有“文件”,我只想“更新”现有表。我做了“添加->新触发器”,并根据我的问题编写了代码。你是在写SQL(结构化查询语言)吗?你的意思是说Microsoft SQL Server(实际产品)?如果是:请添加
sql server
标记以明确这一点。如果不是:这是什么数据库系统?我在asp.net应用程序中创建了一个SQL Server数据库。数据库是一个.mdf文件。在那之后,我右键单击我的表并添加了一个新的triggerTry,在过程名称周围没有引号。看见
Main."Site.Header1".OnEvent"