Szenario:
Sie arbeiten bei der Auto Insurance Company als SQL Server-Entwickler. Ihr Unternehmen hat eine Datenbank mit mehr als 300 Tabellen. Beim ursprünglichen Design wurde vergessen, Audit-Spalten wie „CreatedBy“ und „CreatedOn“ hinzuzufügen. Sie möchten, dass Sie Add Column CreatedBy und CreatedOn für alle Tabellen in einer Datenbank generieren. Wie würden Sie das machen?Lösung:
Es gibt viele Möglichkeiten, die SQL-Anweisungen für die oben genannte Anforderung zu generieren, wir werden es einfach und schnell halten. Wir werden Select Query verwenden, um Add Column Statements für alle Tabellen zu generieren.Lassen Sie uns die Skripte so generieren, dass wir jedes Mal sehr kleine Änderungen vornehmen müssen und jederzeit neue Spalten hinzufügen können. Ich habe zwei Variablen deklariert, @ColumnName und @ColumnDataType. Sobald wir die Werte für Variablen bereitstellen. Die Select-Abfrage überprüft alle Tabellen, und wenn für die Tabelle keine Spalte vorhanden ist, wird eine Add Column-Anweisung generiert.
--Declare Variables for Column Name and Data Type Declare @ColumnName VARCHAR(100) Declare @ColumnDataType VARCHAR(50) --Set the Values for Variables SET @ColumnName='CreatedBy' SET @ColumnDataType='VARCHAR(50)' --Run the Query and copy results and paste in new window to run. Select 'ALTER Table ['+Table_Schema+'].['+Table_Name+'] ' +'Add '+@ColumnName+' '+@ColumnDataType AS AddColumnQuery from Information_Schema.Tables T where T.Table_Type='BASE TABLE' And Not exists ( Select 1 from INFORMATION_SCHEMA.COLUMNS C WHERE C.TABLE_Name=T.Table_Name and Column_Name=@ColumnName)
Führen Sie die obige Abfrage aus und kopieren Sie die Ergebnisse in neue Abfragefenster. Wählen Sie die Datenbank aus, auf der Sie sie ausführen möchten, und führen Sie sie aus.
Generieren einer SQL-Anweisung zum Hinzufügen von Spalten für alle Tabellen in einer Datenbank – T-SQL-Tutorial
Video-Demo:Generieren Sie eine Add/Drop-Spaltenanweisung für alle Tabellen in einer Datenbank in SQL Server