Ich habe zwei Codezeilen in SQL, die zwei Tabellen im laufenden Betrieb erstellen. Ich muss so etwas tun
IF TABLE EXISTS
DROP IT AND CREATE IT AGAIN
ELSE
CREATE IT
Meine Zeilen sind die folgenden
CREATE TABLE ##CLIENTS_KEYWORD(client_id int)
CREATE TABLE ##TEMP_CLIENTS_KEYWORD(client_id int)
Wie kann ich dieses Konzept für diese beiden Tabellen in meiner Prozedur anwenden?
sql
sql-server
user710502
quelle
quelle
Antworten:
Ab SQL Server 2016 können Sie nur verwenden
In früheren Versionen können Sie verwenden
Sie können auch die Tabelle abschneiden, anstatt sie zu löschen und neu zu erstellen.
quelle
EXEC
damit sich der Parser nicht über frühere Versionen beschwert. dh verwendenEXEC('CREATE TABLE ##CLIENTS_KEYWORD(client_id INT)')
OBJECT_ID IS NULL
statttempdb.sys.tables
abfrage.Überprüfen Sie die Existenz, indem Sie die object_id abrufen:
quelle
Was Sie gefragt haben, ist:
Da Sie die Tabelle immer erstellen, unabhängig davon, ob die Tabelle gelöscht wird oder nicht; Eine leicht optimierte Lösung ist:
quelle