Skenario:
Terkadang kami memiliki persyaratan yang menambahkan kolom di semua tabel di Database. Hari ini kita harus menambahkan kolom CreatedOn di semua tabel jika belum ada di tabel.Solusi:
Kami akan menggunakan Kursor untuk melakukan operasi ini.Harap berikan nama Kolom dan Tipe Data untuk variabel ini. Pada contoh di bawah ini saya menambahkan kolom CreatedOn dengan tipe data DateTime.
SET @COLUMN_NAME='ColumnNameYouWantToAdd'
SET @COLUMN_DATATYPE='DataTypeOfColumn'
------------------------------------------------------------------- --Kode----------------------------------------------- ----
GUNAKAN TESTDBGO
--Deklarasikan Variabel
DECLARE @TableName VARCHAR(100)
MENYATAKAN @TableSchema VARCHAR(100)
MENYATAKAN @COLUMN_NAME VARCHAR(50)
SET @COLUMN_NAME='CreatedOn' -- Ubah Nama Kolom sesuai kebutuhan Anda
MENYATAKAN @COLUMN_DATATYPE VARCHAR(50)
SET @COLUMN_DATATYPE='DateTime' -- Berikan tipe data untuk kolom--Declare Cursor
MENNYATAKAN KURSOR CUR UNTUK SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE ='BASE TABLE'--BUKA KURSOR
OPEN CUR
--Ambil Baris Pertama
FETCH NEXT DARI CUR KE @TableSchema,@TableName--Loop
SELAMAT @@FETCH_STATUS =0 MULAI MENYATAKAN @SQL NVARCHAR(MAX) SET @SQL=NULL JIKA TIDAK ADA ( PILIH 1 DARI INFORMATION_SCHEMA.COLUMNS
DI MANA TABLE_NAME=@TableName DAN COLUMN_NAME=@COLUMN_NAME
and Table_Schema=@TableSchema) MULAI SET @SQL='ALTER TABLE '+@TableSchema+'.'+@TableName +' ADD '+@COLUMN_NAME
+ ' '+@COLUMN_DATATYPE PRINT @SQL EXEC ( @SQL) SELESAI JIKA ADA ( PILIH 1 DARI INFORMATION_SCHEMA.COLUMNS
DI MANA TABLE_NAME=@TableName DAN COLUMN_NAME=@COLUMN_NAME
and Table_Schema=@TableSchema) BEGIN CETAK 'Kolom Sudah ada di Tabel' END FETCH NEXT FROM CUR INTO @TableSchema,@TableName END--Tutup dan Hapus Kursor
TUTUP CUR
DEALOCATE CUR
Video Demo:Cara Menambahkan Kolom ke Semua Tabel di Database SQL Server (Contoh Kursor)