sql >> Databáze >  >> RDS >> Sqlserver

Přidat sloupec, pokud neexistuje do všech tabulek?

V DDL nemůžete používat proměnné, jako je @tableName. Kromě toho může rozdělení názvu na část a ignorování schématu vést pouze k chybám. Měli byste použít pouze náhradu ''?'' v parametru dávky SQL a spoléhat se na MSforeachtable nahrazení:

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. Operace není povolena po uzavření ResultSet (mysql, java)

  2. Databáze + ověřování systému Windows + uživatelské jméno/heslo?

  3. Jaký je způsob návrhu jednoduché relační databáze učitel-předmět-žák-dávka?

  4. Kombinujte INSERT a SELECT v jednom SQL dotazu (Zapier)