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.

Foi útil?

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();
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top