Почему я не могу создать триггер, используя мой SqlCommand? - PullRequest
2 голосов
/ 19 мая 2010

Линия cmd.ExecuteNonQuery();

cmd.CommandText

CREATE TRIGGER  subscription_trig_0  ON  subscription   AFTER INSERT  AS  UPDATE user_data SET msg_count=msg_count+1 FROM user_data
JOIN INSERTED ON user_data.id = INSERTED.recipient; 

Исключение:

Incorrect syntax near the keyword 'TRIGGER'.

Затем, используя VS 2010, подключенный к тому же файлу (mdf-файл), я запускаю запрос выше и получаю сообщение об успехе. WTF!

Ответы [ 3 ]

2 голосов
/ 19 мая 2010

Опции

  • 1-ая строка фактического отправленного SQL не является CREATE TRIGGER
  • CommandType неверен (например, он пытается добавить EXEC или некоторые команды «prepare»)

Используйте профилировщик SQL для просмотра точно того, что вы отправляете на механизм БД (на самом деле у вас есть Express Edition, в котором размещается MDF)

1 голос
/ 19 мая 2010

У вас CommandType установлено неправильно?

0 голосов
/ 19 мая 2010

Я не уверен, почему это не удается, но на вашем месте я бы использовал SMO для запросов ddl. В этом случае вам нужен метод Trigger.Create.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...