Frage

Ich brauche einen Trigger in SQL Server 2005 zu ändern, und ich will es tun, um einen Tabellenadapter und eine SQL-Anweisung, nicht eine gespeicherte Prozedur. Ich weiß, ich könnte dies in dem Abfrage-Browser ausgeführt und ausführen, aber ich brauche es über mehrere Datenbanken zu implementieren und eine Tabelle Adapter in dem Update verwenden. Ist das möglich?

Doing Abfrage hinzufügen -> Update -> Einfügen des Code unten -> Query Builder, um zu sehen, ob es parst

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

Fehler ... Die USE [Database] SQL-Konstrukt oder Anweisung wird nicht unterstützt.

, und wenn ich das Oberteil entfernen und beginnen bei nur ALTER TRIGGER

Das ALTE TRIGGER SQL-Konstrukt oder Anweisung wird nicht unterstützt.

Ich bin immer noch ziemlich neu in diesem und nicht überrascht sein würde, dass entweder ich entweder über diese gehen in die falsche Richtung und / oder es ist unmöglich, ohne eine gespeicherte Prozedur zu tun.

EDIT:. Ja, ich mache das in C #

Dank. Ich kann es auf diese Weise tun bei ALTER TRIGGER starten, erhalten diese die Arbeit erledigt.

War es hilfreich?

Lösung

Die Table erwartet ein resultset, nicht eine tatsächliche Abfrage. Um dies zu tun, erfolgreich müssen Sie das SqlCommand-Objekt verwenden, um tatsächlich das Update peform.

Wenn Sie nicht ein verwendet haben, bevor es ganz einfach, zuerst erklären Sie Ihre Verbindung, dann Sie Ihren Befehl erstellen Sie die Verbindung. Sobald der Befehl erstellt wird die Command gleich Ihr Skript, und dann können Sie die ExecuteNonQuery () -Methode aufrufen, um das Skript nach dem Öffnen der Verbindung zu laufen. Wenn Sie sagen, welche Sprache Sie verwenden, kann ich versuchen, ein Beispiel zu geben.

Bearbeiten

Hier ist ein C # Beispiel, schnell und schmutzig, aber es erhält den Punkt herüber. HINWEIS, aus dem Speicher erfolgen, sollte aber korrekt sein.

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();
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top