Problem:
An allen Benutzertabellen soll eine neue Spalte ergänzt werden.
Gibt es eine Möglichkeit, die neue Spalte mit einer einzigen Anweisung direkt an allen Tabellen zu ergänzen?
Lösung:
Die Systemdatenbank master enthält die undokumentierte Gespeicherte Prozedur sp_msforeachtable.
Als Parameter erwartet diese Gespeicherte Prozedur eine SQL-Anweisung, die dann gegen alle Tabellen der Datenbank ausgeführt wird.
Das folgende Beispiel ergänzt jede Benutzertabelle mit dem Feld LastChange vom Typ datetime:
master..sp_msforeachtable ‚Alter Table ? Add LastChange datetime‘
/* übernommen aus der Original sqlfaq.de */