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