Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách tạo Tập lệnh để Thêm Ràng buộc Mặc định vào Cột trong Nhiều Bảng trong Cơ sở dữ liệu SQL Server - Hướng dẫn SQL Server / TSQL Phần 94

Tình huống:

Bạn đang làm việc với tư cách là Nhà phát triển SQL Server, công ty của bạn có cơ sở dữ liệu với hàng tấn bảng. Mỗi Bảng có một số cột kiểm tra như CreatedOn, CreatedBy. Không có Ràng buộc mặc định nào được tạo trên chúng. Bạn muốn tạo Ràng buộc mặc định trên Cột CreatedOn cho tất cả bảng có giá trị getdate (), bạn cũng muốn tạo Ràng buộc mặc định cho CreatedBy =SUSER_SNAME (). Bạn có thể có một cột loại chuỗi khác và bạn muốn tạo tập lệnh cho điều đó cũng vậy.

Giải pháp:

Tập lệnh dưới đây có thể được sử dụng để tạo Ràng buộc Mặc định cho cột nhất định trong toàn bộ cơ sở dữ liệu cho tất cả các bảng. Tên cho Ràng buộc mặc định sẽ là DF_SchemaName_TableName_ColumnName.
Hãy tạo các tập lệnh Ràng buộc Mặc định cho cột CreatedOn với giá trị Getdate () bằng cách sử dụng tập lệnh bên dưới.

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
 
 
Tạo Tập lệnh để Thêm Ràng buộc Mặc định vào Cột trong Cơ sở dữ liệu trong SQL Server
 Bạn chỉ phải thực hiện thay đổi đối với các biến @ColumnName và @DefaultValue theo yêu cầu của bạn. Hãy sử dụng cùng một tập lệnh để thêm Ràng buộc mặc định vào Cột CreatedBy với giá trị =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
 
Cách tạo tập lệnh để thêm Ràng buộc Mặc định trên cột trong Cơ sở dữ liệu SQL Server
 
Bây giờ chúng ta hãy xem xét rằng bạn muốn đặt giá trị mặc định thành một giá trị chuỗi nào đó vì chúng tôi muốn tạo Ràng buộc Mặc định cho Vùng cột ='Hoa Kỳ', Khi đặt giá trị của biến @DefaultValue, hãy thêm các dấu nháy đơn như được hiển thị bên dưới.
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
 
 
Cách tạo tập lệnh để thêm Ràng buộc Mặc định trên Cột trong nhiều Bảng trong Cơ sở dữ liệu SQL Server
 
  
Video Demo:Tạo Tập lệnh để thêm Ràng buộc Mặc định vào Cột trong Nhiều Bảng trong Cơ sở dữ liệu Máy chủ SQL


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sử dụng trình thiết kế truy vấn trong SQL Server

  2. Spotlight Cloud hỗ trợ cho Azure SQL DB Thông báo (Xem trước)

  3. Tập lệnh được cải tiến trả về tất cả các thuộc tính từ SERVERPROPERTY () trong SQL Server

  4. Giới thiệu về các hàm có giá trị trong bảng đa câu lệnh (MSTVF) trong SQL Server

  5. Ví dụ về Chuyển đổi 'time' thành 'datetime' trong SQL Server (T-SQL)