it-swarm-ko.tech

여러 사용자 테이블을 삭제하는 Microsoft SQL Server Management Studio 2008

데이터베이스를 삭제하고 다시 만들지 않고 데이터베이스에서 여러 테이블을 쉽게 삭제할 수있는 방법이 있습니까? 이 경우 제거 할 100 개가 넘습니다.

all 사용자 테이블을 제거하고 필요한 데이터를 다시 가져 오는 것이 만족 스럽지만 데이터베이스 보안 설정을 건드릴 수 없습니다.

12
Ryaner

개체 탐색기에서 관심있는 데이터베이스로 이동합니다. 데이터베이스를 확장하고 테이블 폴더를 클릭합니다. F7 키를 눌러 개체 탐색기 세부 정보를 표시합니다. 삭제할 테이블을 선택하고 삭제 키를 누릅니다.

26
GilaMonster

T-SQL에서 직접 수행하지 않는 이유 ( DROP TABLE )? 그런 다음 적절한 SQL 스크립트를 만드는 경우 (삭제해야하는 테이블 목록이있는 경우 자동 생성)하고 자리를 비 웁니다.

2
Jon Skeet

여러 테이블을 반복하고 다음을 실행하여 삭제할 수 있습니다.

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을 삭제할 수 있습니다.).

0
Ole Lynge

제안대로 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 '[email protected]

    fetch next from select_cursor
    into @TABLE
end

close select_cursor
deallocate select_cursor
0
Ryaner