Comment puis-je déposer les variables de table dans SQL-Server? Dois-je encore le faire?
J'ai un tableau de variable dans un script (pas une procédure stockée). Deux questions:
- Comment puis-je supprimer la table variable? Drop Table @nom_variable donne un "Incorrect snytax" erreur.
- Dois-je faire cela? J'entends c'est une bonne pratique. Est-il vraiment nécessaire pour les petits scripts de ce genre?
Voici mon code:
Declare @projectList table(
name varchar(40) NOT NULL);
Insert Into @projectList
Values ('BCR-00021')
Select *
From @projectList
Drop Table @projectList -- does not work
- Vous ne pouvez pas vous déplacer vous-même si la 2ème partie de votre question ne s'applique pas.
Vous devez vous connecter pour publier un commentaire.
Tableau les variables sont automatiquement locales et automatiquement supprimées -- vous n'avez pas à vous inquiéter à ce sujet.
DELETE @projectList
va supprimer toutes les lignes de la table dans la variable@projectList
Les variables de Table sont comme int ou varchar variables.
Vous n'avez pas besoin de les faire tomber. Ils ont la même portée règles comme int ou varchar variables
si quelqu'un d'autre vient à travers cette... et vous avez vraiment besoin de drop comme tout dans une boucle, vous pouvez simplement supprimer tous à partir de la variable de table:
Mais vous tous avez oublié de mentionner que si une variable tableau est utilisé dans une boucle, il aura besoin de vidange (supprimer @tableau) avant de charger à nouveau les données à l'intérieur d'une boucle.
Comme TempTables, un tableau de variable est également créé dans la base de données TempDB. La portée d'une variable de table est le lot, la procédure stockée et de la déclaration du bloc dans lequel elle est déclarée. Ils peuvent être passés comme paramètres entre les procédures. Ils sont automatiquement supprimés lorsque vous fermez la session sur laquelle vous les créez.
Voici une solution
Fonctionne très bien sur SQL Server 2014
Christophe