Có cách nào đơn giản để loại bỏ một nhóm các bảng có liên quan trong SQL Server không? Lý tưởng nhất là tôi muốn tránh phải lo lắng về thứ tự mà họ đang bị bỏ rơi vì tôi biết cả nhóm sẽ biến mất vào cuối quá trình.Rơi một nhóm bảng trong SQL Server
Trả lời
Có nguy cơ nghe có vẻ ngu ngốc, tôi không tin rằng SQL Server hỗ trợ cú pháp xóa/xếp tầng. Tôi nghĩ rằng bạn có thể cấu hình một quy tắc xóa để làm tầng xóa (http://msdn.microsoft.com/en-us/library/ms152507.aspx), nhưng theo như tôi biết các trick với SQL Server là chỉ để chạy truy vấn thả của bạn một lần cho mỗi bảng bạn đang rơi, sau đó kiểm tra nó làm việc.
Tôi không có quyền truy cập vào SQL Server để kiểm tra điều này, nhưng làm thế nào về:
DROP TABLE IF EXISTS table1, table2, table3 CASCADE;
Tôi không chắc chắn, nếu cách tiếp cận của Derek hoạt động. Bạn chưa đánh dấu nó là câu trả lời hay nhất.
Nếu không: với SQL Server 2005, tôi đoán là có thể.
Ở đó, họ đã giới thiệu các ngoại lệ (mà tôi chưa sử dụng). Vì vậy, thả bảng, bắt ngoại lệ, nếu một xảy ra và thử bảng tiếp theo cho đến khi tất cả chúng đều biến mất.
Bạn có thể lưu trữ danh sách các bảng trong bảng tạm thời và sử dụng con trỏ để di chuyển nó, nếu bạn muốn.
Tôi đã kết thúc bằng cách sử dụng Apache ddlutils để thực hiện việc thả cho tôi, sắp xếp nó trong trường hợp của tôi, mặc dù một giải pháp làm việc chỉ trong máy chủ sql sẽ khá đơn giản hơn một chút.
@ Derek Park, tôi không biết bạn có thể tạo các bảng riêng biệt ở đó, vì vậy tiện dụng, nhưng dường như không hoạt động như mong đợi. Nether NẾU EXISTS cũng không CASCADE được máy chủ sql nhận diện, và chạy drop table X, Y, Z
dường như chỉ hoạt động nếu chúng bị bỏ theo thứ tự đã nêu.
Xem thêm http://msdn.microsoft.com/en-us/library/ms173790.aspx, mô tả cú pháp bảng thả.
Điều bạn giữ lại từ việc thả các bảng theo thứ tự bất kỳ là phụ thuộc chính của nước ngoài giữa các bảng. Vì vậy, loại bỏ FK trước khi bạn bắt đầu.
- Sử dụng hệ thống quan điểm INFORMATION_SCHEMA, lấy một danh sách của tất cả các phím nước ngoài liên quan đến bất kỳ các bảng
- Drop mỗi một trong các phím nước ngoài
- Bây giờ bạn sẽ có thể thả tất cả các bảng, sử dụng bất kỳ thứ tự nào bạn muốn.
Một cách tiếp cận khác có thể là: trước tiên hãy loại bỏ các ràng buộc, sau đó thả các bảng trong một lần chụp.
Nói cách khác, DROP CONSTRAINT cho mọi ràng buộc, sau đó là DROP TABLE cho mỗi bảng; tại thời điểm này thứ tự thực hiện không phải là một vấn đề.
này đòi hỏi sự sp___drop___constraints kịch bản bạn có thể tìm thấy ở Database Journal:
sp_MSforeachtable @command1="print 'disabling constraints: ?'", @command2="sp_drop_constraints @tablename=?"
GO
sp_MSforeachtable @command1="print 'dropping: ?'", @command2="DROP TABLE ?"
GO
LƯU Ý này - rõ ràng - nếu bạn có nghĩa là để thả TẤT CẢ các bảng trong cơ sở dữ liệu của bạn, vì vậy hãy cẩn thận
- 1. nhóm concat trong SQL Server
- 2. Chỉ mục nhóm SQL Server
- 3. Thả bảng trong Sql Server bằng Sql Server Management Studio
- 4. Các bảng rất lớn trong SQL Server
- 5. Chỉ mục nhóm được gộp trong SQL Server
- 6. Bảng Pivot động trong SQL Server
- 7. Tìm bảng đã khóa trong SQL Server
- 8. Bảng SQL Server để json
- 9. Làm cách nào để di chuyển một bảng vào một Nhóm tệp cụ thể trong SQL Server 2008
- 10. SQL trong SQL Server
- 11. Chỉ định một số hàng trong SQL Server, nhưng được nhóm lại trên một giá trị
- 12. SQL Server 2008 Reporting: Sum của Max của nhóm
- 13. NHibernate LINQ Nhóm Bằng thất bại trong việc nhóm đúng trong SQL Server
- 14. Chỉ mục SQL Server nào nên được nhóm lại?
- 15. SQL Server Tạo một bảng temp cho truy vấn này
- 16. SQL Server/Oracle: bảng tạm thời Private
- 17. Xoay vòng một bảng trong SQL Server 2005 để chứa cùng một cột nhiều lần
- 18. bảng Pivot trong SQL Server Với Spaces Trong di
- 19. MS SQL Server bảng chéo chế
- 20. SQL server tham gia bảng và trục
- 21. Sao lưu cơ sở dữ liệu SQL Server một phần (không bao gồm một số bảng)
- 22. Truy vấn ngày tạo bảng SQL Server
- 23. Kết hợp chuỗi nhóm/LISTAGG cho SQL Server
- 24. Thủ tục lưu trữ SQL Server Thư mục/nhóm
- 25. Tương đương với 'TẠO BẢNG ... NHƯ ... "trong SQL Server
- 26. Chèn nhiều hàng vào bảng trong SQL Server
- 27. Phạm vi của các bảng tạm thời trong SQL Server
- 28. Cách tạo bảng Chỉ đọc trong SQL Server?
- 29. Hợp nhất hai Bảng trong SQL Server 2008
- 30. Tạo biến bảng trong SQL Server 2008 R2