Microsoft SQL Server Management Studio 2008 ลบตารางผู้ใช้หลายตาราง


12

มีวิธีง่ายๆในการลบหลายตารางในฐานข้อมูลโดยไม่ทิ้งฐานข้อมูลและสร้างใหม่หรือไม่ ในกรณีนี้เรามีมากกว่า 100 รายการที่จะลบ

ฉันมีความสุขมากที่จะลบตารางผู้ใช้ทั้งหมดและนำเข้าข้อมูลที่จำเป็นอีกครั้ง แต่ไม่สามารถแตะการตั้งค่าความปลอดภัยฐานข้อมูลใด ๆ

คำตอบ:


26

ใน object explorer ให้นำทางไปยังฐานข้อมูลที่คุณสนใจขยายออกและคลิกที่โฟลเดอร์ Tables กด F7 เพื่อแสดงรายละเอียด Object Explorer เลือกตารางที่คุณต้องการลบและกดปุ่มลบ


มีข้อ จำกัด อะไรบ้าง?
Simon

2

ด้วยเหตุผลใดก็ตามจะไม่ทำมันโดยตรงใน T-SQL (กับDROP TABLE)? จากนั้นเป็นเพียงกรณีของการสร้างสคริปต์ SQL ที่เหมาะสม (อาจเป็นการสร้างอัตโนมัติหากคุณมีรายการของตารางที่คุณต้องลบ) และคุณไม่อยู่


0

คำตอบ Tsql ตามที่แนะนำ ฉันไม่สามารถรับตารางดร็อปเพื่อทำงานใน tsql ได้ แต่นี่เป็นกลอุบาย

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

สิ่งนี้ถือว่าไม่มีข้อ จำกัด ที่สำคัญมากในสถานที่
K. Brian Kelley

คุณสามารถรวบรวมข้อมูลการอ้างอิงและวางตารางตามลำดับด้วยความพยายามอีกเล็กน้อย การโพสต์สแต็คโอเวอร์โฟลว์ที่ <a href= stackoverflow.com/questions/352176/…>มีวิธีแก้ไขปัญหาบางประการสำหรับการทำเช่นนี้
ConcOfOfTunbridgeWells

0

คุณสามารถวางหลายตารางโดยทำซ้ำผ่านพวกเขาและดำเนินการนี้:

EXEC sp_MSforeachtable @command1 = "DROP TABLE ?"

อย่างไรก็ตามหากคุณพยายามวางตารางที่มีการอ้างอิงโดยคีย์ต่างประเทศคุณจะได้รับข้อผิดพลาดเช่น

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

หากคุณเพียงต้องการทำด้วยตนเองเพียงทำซ้ำคำสั่งสองสามครั้งจนกว่าตารางที่มีการอ้างอิงจะลดลง (เช่นถ้า Table2 มีการอ้างอิงถึง Table1 จากนั้นเรียกใช้ครั้งแรกที่ Table1 ไม่สามารถทิ้งได้ในขณะที่ Table2 ถูกทิ้งและวินาที เรียกใช้ Table1 จากนั้นจึงสามารถดร็อปได้เนื่องจาก Table2 ไม่มาก)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.