J'ai deux lignes de code en SQL qui créent deux tables à la volée, je dois faire quelque chose comme
IF TABLE EXISTS
DROP IT AND CREATE IT AGAIN
ELSE
CREATE IT
mes lignes sont les suivantes
CREATE TABLE ##CLIENTS_KEYWORD(client_id int)
CREATE TABLE ##TEMP_CLIENTS_KEYWORD(client_id int)
comment puis-je appliquer ce concept à ces deux tableaux dans ma procédure?
sql
sql-server
user710502
la source
la source
Réponses:
À partir de SQL Server 2016, vous pouvez simplement utiliser
Sur les versions précédentes, vous pouvez utiliser
Vous pouvez également envisager de tronquer la table plutôt que de la supprimer et de la recréer.
la source
EXEC
afin que l'analyseur ne se plaint pas des versions précédentes. ie utiliserEXEC('CREATE TABLE ##CLIENTS_KEYWORD(client_id INT)')
OBJECT_ID IS NULL
au lieu detempdb.sys.tables
requête.Vérifiez l'existence en récupérant son object_id:
la source
Ce que vous avez demandé, c'est:
Puisque vous allez toujours créer la table, que la table soit supprimée ou non; une solution légèrement optimisée est:
la source