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

Loại bỏ các ràng buộc không tên

Để loại bỏ một ràng buộc mặc định không tên riêng lẻ trên một cột, hãy sử dụng mã sau:

DECLARE @ConstraintName VARCHAR(256)
SET @ConstraintName = (
     SELECT             obj.name
     FROM               sys.columns col 

     LEFT OUTER JOIN    sys.objects obj 
     ON                 obj.object_id = col.default_object_id 
     AND                obj.type = 'F' 

     WHERE              col.object_id = OBJECT_ID('TableName') 
     AND                obj.name IS NOT NULL
     AND                col.name = 'ColunmName'
)   

IF(@ConstraintName IS NOT NULL)
BEGIN
    EXEC ('ALTER TABLE [TableName] DROP CONSTRAINT ['[email protected]+']')
END

Nếu bạn muốn thực hiện việc này cho một cột mặc định, cột này có lẽ phổ biến hơn câu hỏi ban đầu và tôi chắc chắn rằng nhiều người sẽ truy cập vào điều này từ tìm kiếm của Google, thì chỉ cần thay đổi dòng:

obj.type = 'F'

đến

obj.type = 'D'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giám sát Cơ sở dữ liệu SQL qua SP_WhoIsActive hoặc FogLight | Khắc phục sự cố hiệu suất máy chủ SQL -1

  2. Phạm vi của các bảng tạm thời trong SQL Server

  3. Làm cách nào để chạy một thủ tục được lưu trữ hàng ngày trong SQL Server Express Edition?

  4. Làm cách nào để thay đổi SQL Server 2005 thành phân biệt chữ hoa chữ thường?

  5. SQL Client dành cho Mac OS X hoạt động với MS SQL Server