Mam dwa wiersze kodu w SQL, które tworzą dwie tabele w locie, muszę zrobić coś takiego
IF TABLE EXISTS
DROP IT AND CREATE IT AGAIN
ELSE
CREATE IT
moje wiersze są następujące
CREATE TABLE ##CLIENTS_KEYWORD(client_id int)
CREATE TABLE ##TEMP_CLIENTS_KEYWORD(client_id int)
jak mogę zastosować tę koncepcję do tych dwóch tabel w mojej procedurze?
sql
sql-server
user710502
źródło
źródło
Odpowiedzi:
Od SQL Server 2016 możesz po prostu użyć
W poprzednich wersjach możesz użyć
Możesz także rozważyć obcinanie tabeli zamiast porzucania i ponownego tworzenia.
źródło
EXEC
aby parser nie narzekał na poprzednie wersje. tj. użycieEXEC('CREATE TABLE ##CLIENTS_KEYWORD(client_id INT)')
OBJECT_ID IS NULL
zamiasttempdb.sys.tables
zapytania.Sprawdź, czy istnieje, pobierając jego identyfikator_obiektu:
źródło
To, o co prosiłeś, to:
Ponieważ zawsze będziesz tworzył tabelę, niezależnie od tego, czy tabela zostanie usunięta, czy nie; nieco zoptymalizowanym rozwiązaniem jest:
źródło