Question

Je dois modifier un déclencheur dans SQL Server 2005 et utiliser un adaptateur de table et une instruction SQL, et non un processus stocké. Je sais que je peux l'exécuter dans le navigateur de requêtes et l'exécuter, mais je dois le déployer sur plusieurs bases de données et utiliser un adaptateur de table dans la mise à jour. Est-ce possible?

Faire une requête Ajouter - > Mettre à jour - > coller le code ci-dessous - > Générateur de requêtes pour voir s'il analyse

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

erreur ... La construction ou l'instruction SQL USE [DataBaseName] n'est pas prise en charge.

et si je supprime la partie supérieure et commence à ALTER TRIGGER

La construction ou l'instruction SQL ALTER TRIGGER n'est pas prise en charge.

Je suis encore relativement novice dans ce domaine et je ne serais pas surpris que soit je ne le fais pas correctement, et / ou qu'il soit impossible de le faire sans processus stocké.

EDIT: Ouais je fais ça en C #.

merci Je peux le faire de cette façon à partir de ALTER TRIGGER, cela fera le travail.

Était-ce utile?

La solution

TableAdapter attend un jeu de résultats, pas une requête réelle. Pour ce faire, vous devrez utiliser l'objet SqlCommand afin de modifier votre mise à jour.

Si vous n'en avez pas utilisé auparavant, c'est très simple, vous déclarez d'abord votre connexion, puis vous créez votre commande à l'aide de la connexion. Une fois la commande créée, définissez le commandtext sur votre script, puis appelez la méthode ExecuteNonQuery () pour exécuter le script après l’ouverture de la connexion. Si vous dites quelle langue vous utilisez, je peux essayer de vous donner un exemple.

Modifier

Voici un exemple en C #, rapide et sale, mais il fait passer le message. NOTE, fait de mémoire, mais devrait être correct.

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();
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top