Làm cách nào để xóa cột khỏi bảng hiện có?Xoá cột trong MS SQL Server
Trả lời
Lệnh bạn đang tìm kiếm là:
alter table tblName drop column columnName
nơi tblName
là tên của bảng và columnName
là tên của cột, nhưng có một vài điều bạn có thể cần để làm đầu tiên.
- Nếu có bất kỳ tham chiếu khóa lạ nào vào cột, trước tiên bạn cần phải loại bỏ chúng trước.
- Nếu có chỉ mục sử dụng cột đó, bạn sẽ cần loại bỏ chỉ mục hoặc điều chỉnh để 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 không hoạt động khi bạn có thể chắc chắn không ai sẽ truy cập cơ sở dữ liệu, đổi tên bảng hiện tại, sau đó sử dụng create table
và insert into ... select from
để chuyển các cột bạn không muốn xóa.
Một trong những phiên bản sau này của Oracle thực sự có một xóa mềm mà chỉ có thể đánh dấu một cột là không sử dụng mà không xóa nó về mặt vật lý. Nó có tác dụng tương tự kể từ khi bạn không còn có thể tham khảo nó và có một lệnh dọc theo các dòng alter table ... drop unused columns
mà có nghĩa là để được chạy trong thời gian yên tĩnh, mà làm công việc khó khăn của thực sự loại bỏ nó về thể chất.
Điều này có lợi thế là "biến mất" các cột ngay lập tức mà không cần kéo hiệu suất cơ sở dữ liệu xuống trong thời gian bận.
ALTER TABLE XXX DROP COLUMN YYY;
Đối với các bảng lớn, điều này có thể là rất chậm. Nó thường có thể nhanh hơn rất nhiều để tạo một bảng mới, một bản sao cũ nhưng với các thay đổi và chèn dữ liệu. Thả bảng cũ và sau đó đổi tên bảng mới.
Điều này cũng có thể được thực hiện thông qua giao diện đồ họa SSMS.
Tôi thích phương pháp này vì nó cảnh báo bạn nếu có bất kỳ mối quan hệ nào trên cột đó và cũng có thể tự động xóa những mối quan hệ đó. Như PaxDiablo nói, nếu có các mối quan hệ, chúng phải được xóa trước tiên.
- bảng Đặt ở chế độ Design view (nhấp chuột phải vào bảng) như sau:
- Nhấp chuột phải vào cột theo quan điểm thiết kế của bảng và nhấn "Xóa Cột"
Tại thời điểm này, nếu có bất kỳ mối quan hệ nào cũng cần phải bị xóa, nó sẽ hỏi bạn có muốn xóa chúng không.
- 1. MS SQL Server Row GUID Cột
- 2. Hibernate và MS SQL Server Identity cột
- 3. Đổi tên một cột trong MS SQL Server 2005
- 4. DateCreated cột trong Sql Server?
- 5. PostgreSQL hoặc MS SQL Server?
- 6. SQL Server 2005 - xoá trình kích hoạt bảng?
- 7. HornetQ Persistence sử dụng MS SQL server
- 8. MS SQL Server bảng chéo chế
- 9. Thiết lập Liquibase với MS-SQL Server
- 10. Phương pháp hiệu quả nhất để phát hiện thay đổi cột trong MS SQL Server
- 11. Bảng tổng hợp MS SQL Server với truy vấn con trong mệnh đề cột
- 12. Alter bảng thêm nhiều cột MS SQL
- 13. Hướng dẫn nhân rộng trong MS SQL Server 2008
- 14. Trình tự Oracle nhưng sau đó trong MS SQL Server
- 15. Tùy chỉnh chức năng tổng hợp trong MS SQL Server?
- 16. varchar (tối đa) MS SQL Server 2000, vấn đề?
- 17. Đổi tên cột trong SQL Server
- 18. Pivots với cột động trong SQL Server
- 19. Dán dữ liệu MS Excel vào SQL Server
- 20. Kết nối với MS SQL Server từ PHP trên Linux?
- 21. MS SQL Server và JDBC: đóng kết nối
- 22. MS SQL server - chuyển đổi chuỗi HEX để nguyên
- 23. Cách tìm cổng cho MS SQL Server 2008?
- 24. MS SQL Server tương đương với giải thích của PostgreSQL
- 25. Sử dụng Rails 2.x với MS SQL Server 2005
- 26. SQL Server: ALTER với ADD cột mới
- 27. SQL Server Alter Cột được tính toán
- 28. MS SQL: Chuyển đổi cột Ngày giờ thành nvarchar
- 29. Cột được tính toán SQL Server
- 30. Mã hóa dữ liệu trong một cột trong SQL Server
bản sao có thể có của [Cách xóa cột khỏi bảng hiện có?] (Http: // stackoverflow.com/questions/5626344/how-to-remove-a-cột-từ-một-hiện-bảng) –
Thực ra, câu hỏi khác được viết 2 năm sau câu hỏi này sao cho có thể trùng lặp. –