Création de la table SQL à l'aide de dynamic nom de la variable
Je veux créer une sauvegarde des tables SQL à l'aide de noms de variables.
quelque chose le long des lignes de
DECLARE @SQLTable Varchar(20)
SET @SQLTable = 'SomeTableName' + ' ' + '20100526'
SELECT * INTO quotename(@SQLTable)
FROM SomeTableName
mais je suis
Syntaxe incorrecte près de '@SQLTable'.
C'est juste une partie d'un petit script pour maintence donc je n'ai pas à vous soucier des injections.
OriginalL'auteur stevenjmyu | 2010-05-25
Vous devez vous connecter pour publier un commentaire.
J'ai le même résultat que @plditallo. Sans les parenthèses, j'obtiens l'erreur: "impossible de trouver la procédure stockée..." EXEC sans crochets tente d'appeler une procédure. stackoverflow.com/questions/8382753/...
OriginalL'auteur John Hartsock
Malheureusement, vous ne pouvez pas utiliser les variables de liaison pour les noms de table, les noms de colonnes, etc. DANS ce cas, vous devez générer le SQL dynamique et l'utilisation
exec
.OriginalL'auteur Donnie
J'ai quitté la date de séparer comme je suppose que vous voulez calculer pour chaque course.
OriginalL'auteur Don
Vous devriez regarder dans l'aide de synonymes:
-- Créer un synonyme pour le Produit table dans AdventureWorks2008R2.
Pour CRÉER un SYNONYME MyProduct
POUR AdventureWorks2008R2.De Production.Produit;
ALLER
-- Requête de la table de Produit en utilisant le synonyme.
UTILISER la base de données tempdb;
ALLER
SÉLECTIONNEZ ProductID, Nom
DE MyProduct
OÙ ProductID < 5;
ALLER
http://msdn.microsoft.com/en-us/library/ms177544.aspx
OriginalL'auteur Tyson Nero
cette requête est correcte mais il suffit d'utiliser des guillemets simples ("FooTable")='FooTable'
OriginalL'auteur Chandu