A | A | A

SQL Server: Neue Tabellenspalten hinzufügen

(am)

15.09.2009 16:43

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)


Anzeige
Mehr zum Thema


  • Mister Wong
  • Folkd
  • oneview
  • del.icio.us
  • LinkaARENA
  • google.com
  • blinklist
  • Furl
  • YahooMyWeb
  • YiggIt

Anzeige

Stellenangebote

Website durchsuchen

Anzeige

Twitter