2017-07-21 4 views
0

私はストアドプロシージャを書いていて、日付で更新される文字列名を生成したいと思います。たとえば、今日は7月21日、2017年以降、私は文字列変数をToday_is_20170721にしたいと思います。ここで 日付で更新されるSQL変数の宣言方法は?

は、私が 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 

は私が私はGO-してどこか分からないところから、エラーMust declare the scalar variable variable "@datestring".

を取得保管しましたかなり特定の変数が宣言されています。

+0

何ですか?理解できません。 「日付とともに更新される文字列名」とは何ですか?これはテーブルの列ですか?これは変数の名前ですか?それは価値のように見えます。なぜ動的SQLを使用していますか? –

答えて

3

あなたが望むかもしれないと私に発生します。それはあなたが本当に望むものではないかもしれませんので

declare @desiredstring varchar(255); 

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

はしかし、これは非常に単純なSQLコードです。

+0

これはまさに私が望むものですが、そのコードスニペットでもエラーが返されます: "'@desiredstring'の近くの構文が間違っています。" – daOnlyBG

+0

@daOnlyBG。 。 。 'set'が必要です。 –

+0

素晴らしいありがとう。上記のSantiは、 'declare'ステートメントを使用しなかったと指定するのは正しいと私は信じています。 – daOnlyBG

関連する問題