Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wygenerować instrukcję dodawania kolumny dla wszystkich tabel w bazie danych w programie SQL Server — część samouczka SQL Server / T-SQL 49

Scenariusz:

Pracujesz w Auto Insurance Company jako programista SQL Server. Twoja firma posiada bazę danych, w której ma ponad 300 tabel. W początkowym projekcie zapomnieli dodać kolumny audytu, takie jak CreatedBy i CreatedOn. Chcą, abyś wygenerował Dodaj kolumnę CreatedBy i CreatedOn dla wszystkich tabel w bazie danych. Jak byś to zrobił?

Rozwiązanie:

Istnieje wiele sposobów na wygenerowanie instrukcji SQL dla powyższych wymagań, zamierzamy zachować prostotę i szybkość. Użyjemy Select Query do wygenerowania instrukcji Add Column Statements dla wszystkich tabel.
Wygenerujmy skrypty w taki sposób, abyśmy za każdym razem musieli wprowadzać bardzo małe zmiany i moglibyśmy w każdej chwili dodać nową kolumnę. Zadeklarowałem dwie zmienne, @ColumnName i @ColumnDataType. Raz podamy wartości zmiennych. Zapytanie Select sprawdzi wszystkie tabele i jeśli kolumna nie istnieje dla tabeli, wygeneruje instrukcję Add Column.

--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)

Uruchom powyższe zapytanie i skopiuj wyniki do nowych okien zapytań, wybierz bazę danych, na której chcesz uruchomić i wykonać.
Jak wygenerować instrukcję SQL dodawania kolumn dla wszystkich tabel w bazie danych — samouczek T-SQL


Prezentacja wideo:Generuj instrukcję dodawania/upuszczania kolumny dla wszystkich tabel w bazie danych w programie 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. Jakie są ograniczenia programu SQL Server Compact? (Lub - jak wybrać bazę danych do użycia na platformach MS?)

  2. Jak wstawić bajt [] do kolumny VARBINARY SQL Server?

  3. Jak zastąpić (null) wartości z 0 wyjściem w PIVOT?

  4. String_agg dla SQL Server przed 2017 r.

  5. Co sprawia, że ​​instrukcja SQL jest sargowalna?