Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Добавяне на колона, ако тя не съществува към всички таблици?

Не можете да използвате променливи, като @tableName, в DDL. Освен това, разделянето на името на части и игнорирането на схемата може да доведе само до грешки. Трябва просто да използвате замяната ''?'' в пакетния параметър на SQL и да разчитате на MSforeachtable замяна:

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. SQL клиент за Mac OS X, който работи с MS SQL Server

  2. PHP 7.0 ODBC драйвер за Windows

  3. Как да намерите трета или nᵗʰ максимална заплата от таблицата със заплати?

  4. varbinary към низ на SQL Server

  5. TSQL md5 хеш, различен от C# .NET md5