Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara menghasilkan Script untuk Menambahkan Batasan Default ke Kolom di Beberapa Tabel di Database SQL Server - Tutorial SQL Server / TSQL Bagian 94

Skenario:

Anda bekerja sebagai Pengembang SQL Server, perusahaan Anda memiliki database dengan banyak tabel. Setiap Tabel memiliki beberapa kolom audit seperti CreatedOn, CreatedBy. Tidak ada Batasan default yang pernah dibuat pada mereka. Anda ingin membuat Batasan Default pada Kolom CreatedOn untuk semua tabel dengan nilai getdate(), Anda juga ingin membuat Batasan Default untuk CreatedBy=SUSER_SNAME(). Anda mungkin memiliki kolom lain dengan tipe string dan Anda ingin membuat skrip untuk itu juga.

Solusi:

Skrip di bawah ini dapat digunakan untuk menghasilkan Batasan Default untuk kolom yang diberikan di seluruh database untuk semua tabel. Nama untuk Default Constraint adalah DF_SchemaName_TableName_ColumnName.
Mari buat skrip Default Constraint untuk kolom CreatedOn dengan nilai Getdate() dengan menggunakan skrip di bawah ini.

Declare @ColumnName VARCHAR(128)
Declare @DefaultValue VARCHAR(100)
SET @ColumnName='CreatedON'
SET @DefaultValue='Getdate()'

Select Schema_Name(Schema_id) as SchemaName,
t.Name as TableName,
C.Name as ColumnName,
'Alter Table ['+Schema_Name(Schema_id)
+'].['+t.Name+']'
+' Add Constraint DF_'+Schema_Name(schema_id)
    +'_'+t.name
    +'_'+c.name+''
    +' default '+@DefaultValue+' for '
    + @ColumnName as CreateDefaultConstraint
from sys.tables t
inner join sys.columns c
on t.object_id=c.object_id
and t.is_ms_shipped=0
and c.name=@ColumnName
 
 
Buat Skrip untuk Menambahkan Batasan Default ke Kolom di Database di SQL Server
 Anda hanya perlu mengubah variabel @ColumnName dan @DefaultValue sesuai kebutuhan Anda. Mari gunakan skrip yang sama untuk menambahkan Batasan Default ke Kolom CreatedBy dengan value=SUSER_SNAME().
Declare @ColumnName VARCHAR(128)
Declare @DefaultValue VARCHAR(100)
SET @ColumnName='CreatedBy'
SET @DefaultValue='SUSER_SNAME()'

Select Schema_Name(Schema_id) as SchemaName,
t.Name as TableName,
C.Name as ColumnName,
'Alter Table ['+Schema_Name(Schema_id)
+'].['+t.Name+']'
+' Add Constraint DF_'+Schema_Name(schema_id)
    +'_'+t.name
    +'_'+c.name+''
    +' default '+@DefaultValue+' for '
    + @ColumnName as CreateDefaultConstraint
from sys.tables t
inner join sys.columns c
on t.object_id=c.object_id
and t.is_ms_shipped=0
and c.name=@ColumnName
 
Cara membuat skrip untuk menambahkan Batasan Default pada kolom di Database SQL Server
 
Sekarang mari kita pertimbangkan bahwa Anda ingin menetapkan nilai default ke beberapa nilai string karena kita ingin membuat Batasan Default untuk Wilayah kolom='USA' , Saat menetapkan nilai variabel @DefaultValue, tambahkan tanda kutip tunggal seperti yang ditunjukkan di bawah ini.
Declare @ColumnName VARCHAR(128)
Declare @DefaultValue VARCHAR(100)
SET @ColumnName='Region'
SET @DefaultValue='''USA'''

Select Schema_Name(Schema_id) as SchemaName,
t.Name as TableName,
C.Name as ColumnName,
'Alter Table ['+Schema_Name(Schema_id)
+'].['+t.Name+']'
+' Add Constraint DF_'+Schema_Name(schema_id)
    +'_'+t.name
    +'_'+c.name+''
    +' default '+@DefaultValue+' for '
    + @ColumnName as CreateDefaultConstraint
from sys.tables t
inner join sys.columns c
on t.object_id=c.object_id
and t.is_ms_shipped=0
and c.name=@ColumnName
 
 
Cara membuat skrip untuk menambahkan Batasan Default pada Kolom di beberapa Tabel di Database SQL Server
 
 
Demo Video :Buat Skrip untuk menambahkan Batasan Default ke Kolom di Beberapa Tabel di Database 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. Apa itu SQL Server Management Studio (SSMS)?

  2. Kueri SQL untuk membagi data kolom menjadi baris

  3. Cara Mengenkripsi Tampilan di SQL Server

  4. Database Sistem SQL Server – Pemeliharaan MSDB

  5. SQL Server - gabung dalam saat memperbarui