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

Xóa các cột trong MS SQL Server

Lệnh bạn đang tìm là:

alter table tblName drop column columnName

ở đâu tblName là tên của bảng và columnName là tên của cột, nhưng có một số điều bạn có thể cần làm trước tiên.

  • Nếu có bất kỳ tham chiếu khóa ngoại nào đến cột, trước tiên bạn cần loại bỏ chúng.
  • Nếu có một chỉ mục sử dụng cột đó, bạn cần phải loại bỏ nó hoặc điều chỉnh nó để không sử dụng cột đó.

Hãy nhớ rằng hiệu suất của lệnh này có thể không nhất thiết phải tốt. Một tùy chọn là đợi một khoảng thời gian ngừng hoạt động khi bạn có thể chắc chắn sẽ không có ai truy cập vào cơ sở dữ liệu, đổi tên bảng hiện tại, sau đó sử dụng create tableinsert into ... select from để chuyển các cột bạn không muốn xóa.

Một trong những bản phát hành sau này của Oracle thực sự có tính năng xóa mềm có thể chỉ đánh dấu một cột là không được sử dụng mà không cần xóa nó về mặt vật lý. Nó có tác dụng tương tự vì bạn không thể tham chiếu nó nữa và có một lệnh dọc theo các dòng của alter table ... drop unused columns có nghĩa là được chạy trong thời gian yên tĩnh, mà công việc khó khăn là thực sự loại bỏ nó về mặt vật lý.

Điều này có lợi thế là làm "biến mất" các cột ngay lập tức mà không kéo giảm hiệu suất cơ sở dữ liệu trong thời gian bận rộn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sp_executesql khiến truy vấn của tôi rất chậm

  2. SQL để lấy giá trị tiếp theo không phải giá trị null trong cột

  3. Trả lại Tên máy chủ cục bộ trong SQL Server bằng @@ SERVERNAME

  4. SQL Server - Cách khóa bảng cho đến khi một quy trình được lưu trữ kết thúc

  5. ROW_NUMBER Thay thế cho SQL Server 2000