Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Eine Spalte hinzufügen, wenn sie nicht in allen Tabellen vorhanden ist?

Sie können in DDL keine Variablen wie @tableName verwenden. Außerdem kann das Teilen des Namens in Teile und das Ignorieren des Schemas nur zu Fehlern führen. Sie sollten einfach die Ersetzung „?“ im SQL-Stapelparameter verwenden und sich auf MSforeachtable verlassen Ersatz:

EXEC sp_MSforeachtable '
if not exists (select * from sys.columns 
               where object_id = object_id(''?'')
               and name = ''CreatedOn'') 
begin
    ALTER TABLE ? ADD CreatedOn datetime NOT NULL DEFAULT getdate();
end';