Alterando um gatilho no SQL Server 2005
-
06-07-2019 - |
Pergunta
Eu preciso alterar um gatilho no sql server 2005 e eu quero fazê-lo usando um adaptador de mesa e uma instrução SQL, não um proc armazenado. Eu sei que poderia executar este no navegador da consulta e executá-lo, mas eu preciso implantá-lo em vários bancos de dados e usar um adaptador de tabela na atualização. Isso é possível?
Fazendo Add Consulta -> Update -> colando o código abaixo -> Query Builder para ver se ele analisa
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...");
erro ... A USE [databasename] construção instrução SQL ou não é suportado.
e se eu remover a parte superior e começam em apenas ALTER TRIGGER
A construção ALTER TRIGGER instrução SQL ou não é suportado.
Ainda sou muito novo para isso e não ficaria surpreso que ou eu estou quer lidando com isso da maneira errada e / ou é impossível de fazer sem um proc armazenado.
EDIT: Sim. Eu estou fazendo isso em C #
graças. Eu posso fazê-lo dessa maneira a partir de ALTER TRIGGER, isso vai fazer o trabalho.
Solução
O TableAdapter está esperando um conjunto de resultados, e não uma consulta real. Para fazer isso com sucesso, você precisará usar o objeto SqlCommand para realmente peform sua atualização.
Se você não tiver usado um antes é muito simples, primeiro você declarar sua conexão, então você criar o seu comando usando a conexão. Uma vez que o comando é criado definir as CommandText igual ao seu script, e então você pode chamar o método ExecuteNonQuery () para executar o script após a abertura da conexão. Se você diz que língua você está usando, eu posso tentar dar um exemplo.
Editar
Aqui está um exemplo # C, rápido e sujo, mas ele começa o ponto de vista. NOTA, feito a partir da memória, mas deve ser correta.
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();
}