USUNĄĆ tabelę (Transact-SQL)

Usuwa jeden lub więcej definicji tabela i wszystkich danych, indeksów, wyzwalacze, ograniczenia i specyfikacje uprawnień dla tych tabel.procedura składowana , która odwołuje się porzuconych tabela ani widoku musi jawnie porzucone przy użyciu DROP WIDOKU lub DROP procedury.Raport zależności w tabela, należy użyć sys.dm_sql_referencing_entities.

Składnia

DROP TABLE [ database_name . [ schema_name ] . | schema_name . ]
        table_name [ ,...n ] [ ; ]

Argumenty

  • database_name
    Jest to nazwa bazy danych, w którym utworzono tabela .

  • schema_name
    Jest to nazwa schematu, do której należy tabela .

  • table_name
    Jest nazwą tabela ma zostać usunięty.

Uwagi

DROP TABLE nie można usunąć odwołuje się ograniczenie klucza OBCEGO tabela .Odwołujący się ograniczenia na klucz OBCY lub odwołujący się tabela najpierw mogą być odrzucone.Odwołujący się tabela i tabela klucz podstawowego są usunięty w tej samej instrukcjaDROP TABLE, odwołujący się tabela muszą być wymienione jako pierwsze.

Wiele tabel można upuszczać w dowolnej bazy danych.Jeśli tabela jest porzucone odwołania klucz podstawowego innej tabela , która również zostanie usunięty, odwołujący się tabela z klucz obcy musi być wymieniony przed tabela przechowująca podstawowy klucz , do którego prowadzi odwołanie.

Po upuszczeniu tabela reguł lub ustawienia domyślne dla tabela utraty ich powiązaniei wszelkie ograniczenia lub wyzwalacze skojarzone z tabela są automatycznie usuwane.Jeśli ponowne utworzenie tabela, należy ponownie powiązać właściwe zasady i ustawienia domyślne, odtworzyć wszystkie wyzwalacze i dodać wszystkie wymagane ograniczenia.

Usunięcie wszystkich wierszy w tabela przy użyciu DELETE tablename lub użyć OBCIĄĆ tabelę instrukcja, istnieje w tabela , dopóki jest porzucane.

Dużych tabel i indeksów, używające więcej niż 128 zakresy są opuszczane dwa etapy: logiczną i fizyczną.W fazie logiczne istniejących jednostek alokacji używane przez tabela są oznaczone dla dezalokacji i zablokowane do momentu zatwierdzeniu transakcji.W fazie fizycznej stron IAM oznaczone do dezalokacji są usuwane fizycznie w porcjach.Aby uzyskać więcej informacji, zobacz Upuszczanie i odbudowując dużych obiektów.

Jeśli upuścisz zawiera VARBINARY(MAX) kolumna z FILESTREAM atrybut tabela , nie można usunąć dowolne dane przechowywane w systemie plików.

Ważna informacjaWażne:

DROP TABLE i CREATE TABLE nie należy wykonać na tej samej tabela w tej samej partia.W przeciwnym razie może wystąpić nieoczekiwany błąd.

Uprawnienia

Wymaga uprawnienia do zmiany w schemacie, do którego należy tabela , uprawnienie Kontrola na tabelalub członkostwa w db_ddladmin rola bazy danychstałej.

Przykłady

A.Upuszczanie tabela w bieżącej bazie danych

W następującym przykładzie usunięto ProductVendor1 tabela i jego dane i indeksy z bieżącej bazy danych.

DROP TABLE ProductVendor1 ;

B.Upuszczanie tabela w innej bazie danych

Poniższy przykład spadnie SalesPerson2 tabela w AdventureWorks2008R2 bazy danych.Przykład można wykonać z dowolnej bazy danych na wystąpienieserwera.

DROP TABLE AdventureWorks2008R2.dbo.SalesPerson2 ;

C.Upuszczanie tymczasowej tabela

Poniższy przykład tworzy tymczasową tabela, badań w celu jego istnienia, spadnie go i ponownie testuje jego istnienia.

USE AdventureWorks2008R2;
GO
CREATE TABLE #temptable (col1 int);
GO
INSERT INTO #temptable
VALUES (10);
GO
SELECT * FROM #temptable;
GO
IF OBJECT_ID(N'tempdb..#temptable', N'U') IS NOT NULL 
DROP TABLE #temptable;
GO
--Test the drop.
SELECT * FROM #temptable;