SQL Trigger с Entity Framework

1

Почему этот код выдает ошибку?

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".

Заранее спасибо!

Теги:
sql-server
entity-framework

1 ответ

5

Потому что ваш синтаксис неверен?

GO - это не ключевое слово, которое понимает SQL Server - это особенность студии управления.

Процитировать из документации (очевидно, что там, не так ли?):

Сообщает конец пакета операторов Transact-SQL утилитам SQL Server.

Теперь вы не находитесь в утилитах, поэтому ключевое слово не распознается. Это также не имеет смысла. Как и в: он не нужен.

И, кстати, это тоже неправильно:

set Negative = '0'

Ты просто пишешь

set Negative = 0

SQL Server полностью способен обрабатывать номера.

  • 0
    Каков правильный формат заявления?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню