sql >> Database teknologi >  >> RDS >> Sqlserver

Tilføj en kolonne, hvis den ikke findes til alle tabeller?

Du kan ikke bruge variabler, såsom @tableName, i DDL. Desuden kan det kun resultere i fejl at dele navnet op og ignorere skemaet. Du skal bare bruge ''?''-erstatningen i SQL batch-parameteren og stole på MSforeachtable erstatning:

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';


  1. Forkert DateTime Værdi '0000-00-00 00:00:00' - Date_Sub() i at have

  2. Docker kan ikke linke til en ikke-kørende container

  3. Få kolonneprivilegier til en tabel i SQL Server ved hjælp af T-SQL:sp_column_privileges

  4. Hvorfor giver det mig alle resultater at bruge et Underscore-tegn i et LIKE-filter?