SQL Server 15.09.2009, 16:43 Uhr

Neue Tabellenspalten hinzufügen

Neue Spalten per DDL-Anweisung
Oft sind Änderungen an einer Datenbank per Skript einzuspielen, wie sie auch mit dem SQL Server Management Studio erzeugt werden. Dabei ist es hilfreich, das auf Wunsch vor dem Anlegen einer Tabelle überprüft wird, ob diese bereits vorhanden ist und somit ein entsprechender Fehler vermieden werden kann. Leider fehlt dieser Komfort beim Hinzufügen einer neuen Spalte mit dem Befehl ALTER TABLE ADD, so dass es unweigerlich zu einem Fehler kommt, falls eine Spalte mit dem gewünschten Namen existiert. Abhilfe schafft ein Skript, das die erforderlichen Prüfungen durchführt, bevor die Spalte der Tabelle hinzugefügt wird. Als Erstes wird geprüft, ob die entsprechende Tabelle in der Datenbank vorhanden ist. Dies entspricht der durch Visual Studio erstellten Abfrage. Dann wird überprüft, ob eine Spalte mit dem angegebenen Namen vorhanden ist. Sind beide Bedingungen erfüllt, wird die Spalte angefügt.
IF EXISTS (SELECT * FROM Information_Schema.Columns WHERE TABLE_SCHEMA ='dbo' AND TABLE_NAME = 'MeineTabelle') AND NOT EXISTS(SELECT * FROM Information_Schema.Columns WHERE TABLE_SCHEMA ='dbo' AND TABLE_NAME = 'MeineTabelle' AND COLUMN_NAME ='NeueSpalte') ALTER TABLE dbo.MeineTabelle ADD NeueSpalte INT NULL 
Alternativ besteht die Möglichkeit in einer Variante der Abfrage, die bereits bestehende Spalte erst mit
ALTER TABLE dbo.MeinTabelle DROP COLUMN NeueSpalte 
zu löschen und anschließend neu anzulegen. Damit ist sichergestellt, dass die Definition der Spalte in jedem Fall auf dem neuesten Stand ist. (Thorsten Kansy/am)




Das könnte Sie auch interessieren