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

Cách bỏ một cột có ràng buộc trong SQL Server

Bài viết này trình bày cách bỏ một cột trong cơ sở dữ liệu SQL Server, khi cột đó có một ràng buộc hiện có (Gợi ý:Bạn cần bỏ ràng buộc trước).

Nếu bạn đã từng cố gắng bỏ một cột, hãy nói như sau:

ALTER TABLE Tasks
    DROP COLUMN TaskCode;
GO

Chỉ gặp lỗi như thế này:

Msg 5074, Level 16, State 1, Line 1
The object 'taskcode_unique' is dependent on column 'TaskCode'.
Msg 4922, Level 16, State 9, Line 1
ALTER TABLE DROP COLUMN TaskCode failed because one or more objects access this column.

Lý do là cột có một ràng buộc hiện tại và bạn không thể bỏ bảng khi nó có một ràng buộc.

Do đó, bạn cần bỏ ràng buộc trước khi bỏ bảng.

Bỏ Ràng buộc trước

Dưới đây là cách loại bỏ ràng buộc:

ALTER TABLE Tasks
    DROP CONSTRAINT taskcode_unique;
GO

Kết quả:

Commands completed successfully.

Sau đó thả bảng

Bây giờ bạn đã bỏ ràng buộc, bạn có thể tiếp tục và bỏ bảng:

ALTER TABLE Tasks
    DROP COLUMN TaskCode;
GO

Kết quả:

Commands completed successfully.

  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 khắc phục “Chuyển đổi không thành công khi chuyển đổi giá trị thành kiểu dữ liệu” trong SQL Server

  2. DevOps:DBA hoặc Developer - Cân bằng chính xác

  3. Kết hợp giá trị trường thành chuỗi trong SQL Server

  4. Làm cách nào để kiểm tra xem IDENTITY_INSERT được đặt thành BẬT hay TẮT trong SQL Server?

  5. SQL Server Trigger:Hiểu biết và Các giải pháp thay thế