sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man genererar Add Column Statement för alla tabeller i en databas i SQL Server - SQL Server / T-SQL Tutorial Del 49

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


  1. MySQL vs PostgreSQL? Vilket ska jag välja för mitt Django-projekt?

  2. Hur man konverterar en sträng till ett datum i PostgreSQL

  3. Hur förhindrar jag att en databastrigger återkommer?

  4. psycopg2 hur hantera TypeError:inte alla argument konverteras under strängformatering