Сценарий:
Вие работите в 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