SQL Server 2008, SÉLECTIONNEZ * à PARTIR de la fonction @variable?
C'est possible?
DECLARE @vTableName varchar(50)
SET @vTableName = (SELECT TableName FROM qms_Types WHERE Id = 1)
SELECT * FROM @vTableName
J'ai cette erreur:
Msg 1087, Niveau 16, État 1, Ligne 3 Doit déclarer la variable de table
"@vTableName".
Non, il n'est pas possible que vous l'essayer. Vous aurez probablement obtenir quelques réponses à l'aide de sql dynamique.
double possible de Sélection à partir d'une table dont le nom est passé comme une variable
Pourriez-vous nous en dire plus sur pourquoi vous voulez faire cela?
double possible de Sélection à partir d'une table dont le nom est passé comme une variable
Pourriez-vous nous en dire plus sur pourquoi vous voulez faire cela?
OriginalL'auteur soamazing | 2012-04-05
Vous devez vous connecter pour publier un commentaire.
Réponse courte: Non.
Réponse longue: Noooooooooooooooooooooooooooooooooooooo. Utilisation de SQL dynamique si vous avez, mais si vous êtes à la structuration de vos tables de façon à ce que vous ne connaissez pas le nom de la table à l'avance, il peut être utile de repenser votre schéma.
Ici est une excellente ressource pour apprendre à utiliser le SQL dynamique: La Malédiction et la bénédiction de SQL Dynamique
OriginalL'auteur Jason
si vous essayez de sélectionner à partir d'une table de ce nom, alors vous pouvez faire quelque chose comme ceci:
L'OP est d'essayer de mettre le nom de la table, puis sélectionnez les données de la table, ne pas sélectionner le nom de la table.
Votre propre édition annule votre réponse, puisque la variable
@vTableName
est pas une variable de table; c'est unvarchar(50)
.OriginalL'auteur HeavenCore
ma solution pour cela:
OriginalL'auteur Iago Correia Guimarães
Il semble que des gens différents sont l'interprétation de l'OP différemment.
Je suis sûr que l'OP demande pour ce type de concept /capacité /manoeuvre...
"Mettre un nom de table dans une variable et ensuite utiliser cette variable comme si elle était un nom de table."
De lire toutes les réponses et les réponses, il semble que ce genre de manœuvre ne peut pas être fait - sauf - vous utiliser le SQL dynamique qui...
================================================================
Il y a autres langues d'où cela peut être fait... littéralement, deux lignes de code (voir (L1) et (L2) dans le code ci-dessus) et ne pas avoir à faire beaucoup de mise en forme et l'édition.)
(Je l'ai fait avant - il y a une autre langue où tout ce que vous auriez besoin est en L1 et en L2...)
================================================================
Il est regrettable que SQL Server ne pas le faire sans passer pour un montant décent de l'effort...
OriginalL'auteur user2792497
Je pense que vous voulez ce:
il sera de retour le contenu de la colonne nom de la table. que voulez-vous faire?
OriginalL'auteur Diego
La seule façon de le faire est par le biais de SQL Dynamique qui se réfère à la pratique de la création d'un T-SQL texte et l'exécution à l'aide de la
sp_executesql
(ou simplementexec
)Voici un lien utile sur le sql dynamique La Malédiction et la bénédiction de SQL Dynamique.
Vous devriez vraiment penser à si oui ou non c'est un cas pour le sql dynamique ou si il y a une autre façon pour vous d'effectuer cette opération.
OriginalL'auteur Taryn