Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dodać kolumnę, jeśli nie istnieje we wszystkich tabelach?

W DDL nie można używać zmiennych, takich jak @tableName. Poza tym dzielenie nazwy na część i ignorowanie schematu może skutkować tylko błędami. Należy po prostu użyć zamiany „?”” w parametrze wsadowym SQL i polegać na MSforeachtable wymiana:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Liczenie nowych Klientów miesięcznie

  2. DATEDIFF() Przykłady w SQL Server

  3. Sparametryzować nazwę tabeli w .NET/SQL?

  4. Zmiana kolumny:null na not null

  5. IS NULL vs =NULL w klauzuli gdzie + SQL Server