La création d'un nom de table temporaire avec un numéro généré de façon aléatoire
Pour l'instant j'ai ce code:
declare @random int, @upper int, @lower int, @rndtb varchar(20)
set @lower = 1
set @upper = 999
select @random = ROUND(((@upper - @lower) * rand() + @lower),0)
select @rndtb = '##show'+cast(@random as varchar(20))+''
Mais qui me donne
Conversion a échoué lors de la conversion de la valeur varchar "##show " pour le type de données int.
Ce que je suis en train de réaliser est de créer une table ##show+nombre aléatoire à chaque fois que la requête est exécutée.
Exemple :
##show01
##show78
##show43
Édité avec ce @bluefeet dit et trouvé un moyen de créer la table avec
Declare @SQL VarChar(1000)
SELECT @SQL = 'Create Table ' + @rndtb + '('
SELECT @SQL = @SQL + 'ID int NOT NULL Primary Key, FieldName VarChar(10))'
Exec (@SQL)
mais comment dois-je appeler ou insérez-le dans ce tableau?
- J'ai envie de votre question et de remettre en question le besoin nettoyé un peu... c'est un peu partout dans l'endroit.
- En intégrant une réponse dans la question, vous avez fait le post en désordre. Par exemple, vous avez corrigé le problème de conversion, mais ne supprime pas le message d'erreur, et à présent, il n'a pas de sens. Mais si vous n'avez supprimer le message, puis l'ensemble de la question serait probablement pas de sens, car il ne peut plus ressembler à une question. Au lieu de cela, si vous voulais montrer ce que vous finalement, vous devriez avoir posté une réponse.
Vous devez vous connecter pour publier un commentaire.
Comme vous ajoutez le paramètre
@random
à une chaîne, vous devez le jeter comme un varchar de sorte qu'il peut être concaténé à la partie de chaîne:Votre code sera:
Basé sur votre montage, vous aurez besoin d'utiliser le sql dynamique pour les insérer dans la nouvelle table:
utiliser ceci:
Vous avez besoin de SQL dynamique
La Malédiction et la bénédiction de SQL Dynamique
http://www.sommarskog.se/dynamic_sql.html