Scenario:
Du arbetar i Bilförsäkringsbolaget som SQL Server-utvecklare. Ditt företag har en databas där de har mer än 300 tabeller. I den initiala designen glömde de att lägga till revisionskolumner som CreatedBy och CreatedOn. De vill att du ska skapa Add Column Created By och CreatedOn för alla tabeller i en databas, hur skulle du göra det?Lösning:
Det finns många sätt att generera SQL-satserna för ovanstående krav, vi kommer att hålla det enkelt och snabbt. Vi kommer att använda Select Query för att generera Lägg till kolumnsatser för alla tabeller.Låt oss generera skripten på ett sätt så att vi måste göra mycket små ändringar varje gång och vi kan använda när som helst för att lägga till ny kolumn. Jag har deklarerat två variabler, @ColumnName och @ColumnDataType. När vi kommer att tillhandahålla värden för variabler. Välj-frågan kommer att kontrollera alla tabeller och om kolumnen inte finns för tabellen kommer den att generera Add Column-satsen.
--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)
Kör ovanstående fråga och kopiera resultaten till nya frågefönster, välj den databas som du vill köra och köra på.
Hur man genererar Add Column SQL-sats för alla tabeller i en databas - T-SQL Tutorial
Videodemo :Skapa lägg till/släpp kolumnsats för alla tabeller i en databas i SQL Server