Microsoft SQL Server Management Studio 2008 xóa nhiều bảng người dùng


12

Có một cách dễ dàng để xóa nhiều bảng trong cơ sở dữ liệu mà không cần bỏ cơ sở dữ liệu và tạo lại nó? Trong trường hợp này, chúng tôi có hơn 100 để loại bỏ.

Tôi đủ hạnh phúc để xóa tất cả các bảng người dùng và nhập lại dữ liệu cần thiết nhưng không thể chạm vào bất kỳ cài đặt bảo mật cơ sở dữ liệu nào.

Câu trả lời:


26

Trong trình thám hiểm đối tượng, điều hướng đến cơ sở dữ liệu mà bạn quan tâm. Mở rộng nó ra và nhấp vào thư mục Bảng. Nhấn F7 để hiển thị Chi tiết Object Explorer. Chọn các bảng bạn muốn xóa và nhấn phím xóa.


Còn những hạn chế thì sao?
Simon

2

Bất kỳ lý do nào để không làm điều đó trực tiếp trong T-SQL (với DROP TABLE)? Sau đó, đây chỉ là trường hợp tạo tập lệnh SQL thích hợp (hoàn toàn có thể tự động tạo nó nếu bạn có danh sách các bảng bạn cần xóa) và bạn sẽ đi.


0

Tsql trả lời theo đề nghị. Tôi không thể có được bảng thả để làm việc trong tsql nhưng điều này đã tạo ra mánh khóe.

declare @TABLE varchar(250)

declare select_cursor cursor for
select name from sysobjects where type='U'

open select_cursor

fetch next from select_cursor
into @TABLE

while @@FETCH_STATUS = 0
begin
    print 'DROP TABLE '+@TABLE

    fetch next from select_cursor
    into @TABLE
end

close select_cursor
deallocate select_cursor

Điều này giả định rằng không có ràng buộc chính nào được đưa ra.
K. Brian Kelley

Bạn có thể thu thập dữ liệu phụ thuộc và thả các bảng theo thứ tự với một chút nỗ lực hơn. Bài đăng stackoverflow tại <a href= stackoverflow.com/questions3532176/ trên> có một số giải pháp để thực hiện việc này.
Mối quan tâmOfTunbridgeWells

0

Bạn có thể thả nhiều bảng bằng cách lặp qua chúng và thực hiện điều này:

EXEC sp_MSforeachtable @command1 = "DROP TABLE ?"

Tuy nhiên, nếu bạn cố gắng thả một bảng được tham chiếu bởi khóa ngoại, bạn sẽ gặp một lỗi như

Msg 3726, Level 16, State 1, Line 1
Could not drop object 'dbo.Table1' because it is referenced by a FOREIGN KEY constraint.

Nếu bạn chỉ muốn thực hiện thủ công thì chỉ cần lặp lại câu lệnh một vài lần cho đến khi các bảng có tham chiếu bị loại bỏ (ví dụ: nếu Bảng 2 có tham chiếu đến Bảng 1, thì lúc đầu, Bảng 1 có thể bị hủy trong khi Bảng 2 bị hủy và ở giây chạy Table1 sau đó có thể được loại bỏ vì Table2 không còn nữa).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.