SELECT INTO & NULL

Ich persönlich finde das Erstellen von neuen Tabellen mittels SELECT INTO sehr praktisch und verwende es auch sehr häufig. Dabei ist jedoch zu beachten, dass die Spalten-Typen und deren Eigenschaften bei der Erstellung übernommen werden. Nicht betroffen davon sind [siehe “Limitations and Restrictions”]

  • Indexes
  • Constrains
  • Triggers

Wenn man aber die Tabelle initial mit SELECT INTO erstellt und dann aber größere Feldtypen, oder NULL Values reinschreiben möchte, dann kann man dies beim SELECT INTO indirekt mitgeben.

  Select Coalesce(Cast(Spalte1 as varchar(100)),null) as [Spalte1]
  into TargetTable
  from SourceTable

Anmerkungen:

  • mittels CAST oder CONVERT kann man die Typen ändern.
  • mittels COALESCE kann man eine Spalte nullable machen.