2017-06-02 3 views
0

Ich habe über 100 Tabellen in SQL Server 2000 mit dem gleichen Spaltennamen in jeder Tabelle. Jetzt möchte ich einen Wert in 100 Tabellen gleichzeitig mit einer SQL-Update-Anweisung aktualisieren.Update-Anweisung Wert in Multi-Tabelle auf einmal

Wie mache ich das? Ich versuche Google und Stackoverflow, aber nicht wirklich helfen.

Vielen Dank

+2

Dies ist die Art von Dingen, die in ihm und eine Art von statischen Bezeichner mit dieser Spalte mit einer einzigen Tabelle behandelt werden sollen, damit andere Tabellen verknüpfen können ... Dann würden Sie müssen nur update eine einzige Tabelle anstelle von 100 ... – ZLK

+0

Wenn Sie Single-Tabelle dann hätte, was wäre Ihre update-Anweisung und welche Paameter Sie übergeben werden.Während Sie können sich eine Idee von diesem Link.https: //dba.stackexchange.com/questions/171254/script-to-delete-records-in-multiple-table/174557 # 174557 – KumarHarsh

Antwort

0

erstellen einen Cursor für alle Tabelle in Ihrer Datenbank und dynamische Abfrage auszuführen. Dieses Skript wird Ihnen dabei helfen.

--USE [Your DB] 
--GO 
DECLARE @tableName VARCHAR(100) 
DECLARE @sqlQuery VARCHAR(MAX) 
DECLARE curTable CURSOR FOR SELECT name FROM sys.objects WHERE type_desc = 'USER_TABLE' AND name NOT IN ('sysdiagrams') 
OPEN curTable 
FETCH NEXT FROM curTable INTO @tableName 
WHILE @@FETCH_STATUS = 0 
BEGIN 
    SELECT @sqlQuery = 'UPDATE ' + @tableName + 'SET [YourCol1] = [YourVal1], [YourCol2] = [YourVal2] ...' 
    PRINT @sqlQuery 
    EXECUTE sp_executesql @sqlQuery 

    FETCH NEXT FROM curTable INTO @tableName 
END 
CLOSE curTable 
DEALLOCATE curTable