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

Как да генерирате изявление за добавяне на колона за всички таблици в база данни в SQL Server - SQL Server / T-SQL урок, част 49

Сценарий:

Вие работите в Auto Insurance Company като SQL Server Developer. Вашата компания има база данни, в която има повече от 300 таблици. В първоначалния дизайн те забравиха да добавят колони за одит като CreatedBy и CreatedOn. Те искат да генерирате Добавяне на колона CreatedBy и CreatedOn за всички таблици в една база данни. Как бихте направили това?

Решение:

Има много начини за генериране на SQL изявления за горното изискване, ние ще го поддържаме опростено и бързо. Ще използваме Select Query, за да генерираме изявления за добавяне на колона за всички таблици.
Нека генерираме скриптовете по начин, така че да трябва да правим много малки промени всеки път и да можем да използваме по всяко време, за да добавим нова колона. Декларирах две променливи, @ColumnName и @ColumnDataType. След като ще предоставим стойностите за променливи. Заявката Select ще провери всички таблици и ако колоната не съществува за таблицата, тя ще генерира израз за добавяне на колона.

--Declare Variables for Column Name and Data Type
Declare @ColumnName VARCHAR(100)
Declare @ColumnDataType VARCHAR(50)

--Set the Values for Variables
SET @ColumnName='CreatedBy'
SET @ColumnDataType='VARCHAR(50)'

--Run the Query and copy results and paste in new window to run.
Select 'ALTER Table ['+Table_Schema+'].['+Table_Name+'] '
+'Add '+@ColumnName+' '+@ColumnDataType AS AddColumnQuery
 from Information_Schema.Tables T
where T.Table_Type='BASE TABLE'
And Not exists (
Select 1 from INFORMATION_SCHEMA.COLUMNS C 
WHERE C.TABLE_Name=T.Table_Name and Column_Name=@ColumnName)

Изпълнете заявката по-горе и копирайте резултатите в нов Windows Query, изберете базата данни, върху която искате да стартирате и изпълните.
Как да генерирате SQL изявление за добавяне на колона за всички таблици в база данни - T-SQL урок


Видео демонстрация:Генерирайте изявление за добавяне/пускане на колона за всички таблици в база данни в SQL Server


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Добавяне на множество параметризирани променливи към база данни в C#

  2. Мога ли да използвам поток за ВМЪКВАНЕ или АКТУАЛИЗИРАНЕ на ред в SQL Server (C#)?

  3. Проектиране на база данни:Изчисляване на салдото по сметката

  4. Грешка на SQL Server 206:Сблъсък на тип операнд

  5. Как да коригирате „Сървърът не е конфигуриран за ДОСТЪП ДО ДАННИ“ в SQL Server