Nazwa tabeli to Scores
.
Czy poprawne jest wykonanie następujących czynności?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
sql-server
tsql
tmaster
źródło
źródło
'U'
Drugi parametr najwyraźniej oznacza „Szukaj tylko obiektów o tej nazwie, które są tabelami”. Jedno źródło . ToOBJECT_ID('TableName')
nie jest złe , ale też nie jest niesamowicie precyzyjne, dlatego'U'
w doskonałej odpowiedzi @ Martina.Z SQL Server 2016 możesz używać
Odniesienie: DROP IF EXISTS - nowość w SQL Server 2016
Wkrótce będzie w bazie danych SQL Azure.
źródło
ANSI SQL / wieloplatformowy sposób polega na wykorzystaniu INFORMACJE_SCHEMA , która została zaprojektowana specjalnie do przeszukiwania metadanych dotyczących obiektów w bazach danych SQL.
Większość nowoczesnych serwerów RDBMS zapewnia co najmniej podstawową obsługę INFORMACJE_SCHEMA, w tym: MySQL , Postgres , Oracle , IBM DB2 i Microsoft SQL Server 7.0 (i nowsze) .
źródło
if exists
ansi jest zgodne?Widziałem tak wiele, że tak naprawdę nie działają. po utworzeniu tabeli tymczasowej należy ją usunąć z tempdb!
Jedyny działający kod to:
źródło
dbo
żebytempdb
to działało. Chciałbym również zasugerować dodanie odpowiedzi'u'
wymienionych w komentarzach przyjętej odpowiedzi. Zatem pełne wyrażenie IF wyglądałoby tak:IF OBJECT_ID('tempdb..#temp', 'U')
W SQL Server 2016 (13.x) i nowszych
We wcześniejszych wersjach
U jest twój
table type
źródło
Lub:
źródło
if exists (select * from sys.tables where name = 'Scores') drop table Scores
Mam nadzieję, że to pomoże:
źródło
Napisałem mały UDF, który zwraca 1, jeśli jego argumentem jest nazwa istniejącej tabeli, w przeciwnym razie 0:
Aby usunąć tabelę,
User
jeśli istnieje, nazwij ją tak:źródło
Proste jest to, że:
gdzie
dbo.TableName
jest twój pożądany stół, a „U” jesttype
twójtable
.źródło
źródło
Używam:
źródło
Jest łatwiejszy sposób
źródło
Lepszy wizualny i łatwy sposób, jeśli używasz Visual Studio, wystarczy otworzyć z paska menu,
powinien się otworzyć jak pokazano tutaj
Wybierz i kliknij prawym przyciskiem myszy tabelę, którą chcesz usunąć, a następnie usuń. Taki ekran powinien zostać wyświetlony. Kliknij Aktualizuj bazę danych, aby potwierdzić.
Ta metoda jest bardzo bezpieczna, ponieważ zapewnia informacje zwrotne i ostrzega o wszelkich relacjach usuniętej tabeli z innymi tabelami.
źródło
SQL
, a nie powiązaneVisual Studio
. Dlatego ta odpowiedź nie ma znaczenia dla tego pytania.Zrób tak, to najprostszy sposób.
qry
będzie twoje zapytanie, cokolwiek chcesz na liście wyboru.źródło