2017-07-21 2 views
0

J'écris un proc stocké et voudrais générer un nom de chaîne qui se met à jour avec la date. Par exemple, puisque aujourd'hui est le 21 juillet 2017, j'aimerais que la variable de chaîne soit Today_is_20170721.Comment déclarer une variable SQL qui se met à jour avec la date?

Voici ce que j'ai essayé jusqu'à présent, sur la base an answer to a question similar to mine:

SET @datestring = 'INSERT INTO @tmpTbl1 SELECT CONVERT(VARCHAR(8), GETDATE(), 112)' 
EXEC (@datestring) 

@desiredstring = 'Today_is_' + @datestring 

Je continué à obtenir l'erreur Must declare the scalar variable variable "@datestring".

D'où, je ne sais pas où je suis Go- assez certaine ma variable est déclarée.

+0

Quoi? Je ne comprends pas. Qu'est-ce qu'un "nom de chaîne qui se met à jour avec la date"? Est-ce une colonne dans le tableau? Est-ce le nom d'une variable? Cela ressemble à une valeur. Pourquoi utilisez-vous SQL dynamique? –

Répondre

3

Il me semble que vous voudrez peut-être:

declare @desiredstring varchar(255); 

set @desiredstring = 'Today_is_' + CONVERT(VARCHAR(8), GETDATE(), 112); 

Cependant, cela est assez simple code SQL il pourrait ne pas être ce que vous voulez vraiment.

+0

C'est exactement ce que je voudrais, mais même cet extrait de code renvoie une erreur: "Syntaxe incorrecte près de '@desiredstring'." – daOnlyBG

+0

@daOnlyBG. . . A besoin d'un 'set'. –

+0

Excellent- merci. Je crois que Santi ci-dessus a raison de préciser que je n'ai pas utilisé une déclaration 'declare'. – daOnlyBG