带有实体框架的SQL触发器

use*_*054 1 c# sql sql-server entity-framework

为什么这段代码会抛出错误?

using (ProviderContext db = new ProviderContext())
{
  string sqlcommand = @"GO CREATE TRIGGER [Trigger] ON [dbo].[News] FOR    insert AS BEGIN SET NOCOUNT OFF insert [Statistics](NewsStatID) select NewsID from inserted update [Statistics] set Hits = '0' update [Statistics] set Positive = '0' update [Statistics] set Negative = '0' END";
  db.Database.ExecuteSqlCommand(sqlcommand);
  db.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

EntityFramework.SqlServer.dll中出现"System.Data.SqlClient.SqlException"类型的异常,但未在用户代码中处理

其他信息:关键字"TRIGGER"附近的语法错误.

先感谢您!

小智 5

因为你的语法错了?

GO不是SQL Server理解的关键字 - 它是管理工作室的一个功能.

引用文档(显然是在那里,不是吗?):

将一批Transact-SQL语句的结尾发送到SQL Server实用程序.

现在,您不在实用程序中,因此无法识别关键字.这也没有意义.如:不需要.

顺便说一下,这也是错的:

设置否定='0'

你刚才写的

设置负值= 0

SQL Server完全能够处理数字.