Почему этот код выдает ошибку?
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();
}
Исключение типа "System.Data.SqlClient.SqlException" произошло в EntityFramework.SqlServer.dll, но не было обработано в коде пользователя
Дополнительная информация: Неправильный синтаксис рядом с ключевым словом "TRIGGER".
Заранее спасибо!
Потому что ваш синтаксис неверен?
GO - это не ключевое слово, которое понимает SQL Server - это особенность студии управления.
Процитировать из документации (очевидно, что там, не так ли?):
Сообщает конец пакета операторов Transact-SQL утилитам SQL Server.
Теперь вы не находитесь в утилитах, поэтому ключевое слово не распознается. Это также не имеет смысла. Как и в: он не нужен.
И, кстати, это тоже неправильно:
set Negative = '0'
Ты просто пишешь
set Negative = 0
SQL Server полностью способен обрабатывать номера.