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.
InformationsquelleAutor JohnZ | 2013-02-07