回答:
T-SQLで直接実行しない理由はありますDROP TABLE
か?次に、適切なSQLスクリプトを作成するだけで(削除する必要のあるテーブルのリストがある場合は、おそらく自動生成します)、あなたは離れています。
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
複数のテーブルを繰り返し処理し、これを実行することで削除できます。
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への参照を持っている場合、Table2が削除されている間は最初にTable1を削除できません。 Table2がなくなったため、Table1を実行できます。