Изменение триггера в Sql Server 2005

Мне нужно изменить триггер в sql server 2005, и я хочу сделать это с помощью адаптера таблицы и оператора sql, а не хранимой процедуры. Я знаю, что могу запустить это в браузере запросов и выполнить, но мне нужно развернуть его в нескольких базах данных и использовать адаптер таблицы в обновлении. Это возможно?

Выполнение Add Query -> Update -> вставка приведенного ниже кода -> Query Builder, чтобы увидеть, анализирует ли он

print("USE [DataBaseName]
GO
/****** Object:  Trigger [dbo].[UpdateCurrentAddress]    Script Date: 10/30/2008 14:47:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[UpdateCurrentAddress] ON [dbo].[PreviousAddresses] 
FOR INSERT, UPDATE, DELETE
AS
-- Check to see if there was an insert/update or a deletion.
IF (SELECT COUNT(*) FROM inserted) >= 1
BEGIN
    IF (SELECT CountryID FROM inserted) <> 181

...moar...");

ошибка ... SQL-конструкция или инструкция USE [DataBaseName] не поддерживается.

и если я удалю верхнюю часть и начну с ALTER TRIGGER

SQL-конструкция или оператор ALTER TRIGGER не поддерживается.

Я все еще новичок в этом и не удивлюсь, что либо я делаю это неправильно, и / или невозможно обойтись без сохраненной процедуры.

РЕДАКТИРОВАТЬ: Да, я делаю это на С #.

благодаря. Я могу сделать это таким образом, начиная с ALTER TRIGGER, это выполнит свою работу.


person TEEKAY    schedule 05.11.2008    source источник


Ответы (1)


TableAdapter ожидает набор результатов, а не фактический запрос. Чтобы сделать это успешно, вам нужно будет использовать объект SqlCommand для фактического выполнения вашего обновления.

Если вы не использовали его до того, как это будет довольно просто, сначала вы объявляете свое соединение, а затем вы создаете свою команду, используя соединение. После создания команды установите текст команды, равный вашему сценарию, а затем вы можете вызвать метод ExecuteNonQuery () для запуска сценария после открытия соединения. Если вы скажете, на каком языке вы говорите, я могу попытаться привести пример.

Изменить

Вот пример C #, быстрый и грязный, но он передает суть. ПРИМЕЧАНИЕ, сделано по памяти, но должно быть правильно.

using(SqlConnection oConnection = new SqlConnection("Yourconnectionhere"))
using(SqlCommand oCommand = new SqlCommand(oConnection))
{
    //Configure the command object
    oCommand.CommandText = "Your script here";

    //Open connectin and run script
    oConnection.Open();
    oCommand.ExecuteNonQuery();
    oConnection.Close();
}
person Mitchel Sellers    schedule 05.11.2008