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

Làm thế nào để loại bỏ ràng buộc mặc định của SQL mà không cần biết tên của nó?

Mở rộng trên mã của Mitch Wheat, tập lệnh sau sẽ tạo lệnh để loại bỏ ràng buộc và thực thi động nó.

declare @schema_name nvarchar(256)
declare @table_name nvarchar(256)
declare @col_name nvarchar(256)
declare @Command  nvarchar(1000)

set @schema_name = N'MySchema'
set @table_name = N'Department'
set @col_name = N'ModifiedDate'

select @Command = 'ALTER TABLE ' + @schema_name + '.[' + @table_name + '] DROP CONSTRAINT ' + d.name
 from sys.tables t
  join sys.default_constraints d on d.parent_object_id = t.object_id
  join sys.columns c on c.object_id = t.object_id and c.column_id = d.parent_column_id
 where t.name = @table_name
  and t.schema_id = schema_id(@schema_name)
  and c.name = @col_name

--print @Command

execute (@Command)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ACOS () Ví dụ trong SQL Server

  2. Các tính năng mới trong SQL Server 2017 (Công cụ cơ sở dữ liệu)

  3. Làm cách nào để kiểm tra xem một chuỗi có phải là mã định danh duy nhất hay không?

  4. Làm cách nào để phát hiện và ràng buộc các thay đổi giữa các giá trị hàng trong bảng SQL?

  5. Đánh giá phần mềm - Stellar Repair cho MS SQL