いくつかの変数を宣言して設定しました。次に、ストアド プロシージャを実行する際に、その変数値をパラメーターとして使用したいと考えています。しかし、私はいつもエラーが発生します
スカラー変数を宣言する必要があります。
ここに私の変数があります:
--declare variables for parameter @listweek
declare @tgl_other varchar(50);
--set variables for parameter @listweekset
set @tgl_other = (select top 1 ltrim(rtrim(cast(numweek as char)))+'-('+rangeweek+')' from tbl_weeklyflash where year(dates) = year(getdate()) order by numweek desc);
--the variable values should be like this 30-(01-03-2012 - 08-03-2012)
--and this value that I want to use as parameter value in executing stored procedure
これは実行中のストアド プロシージャです。
insert into my_table (field1, field2, field3)
EXEC my_store_procedure @tgl_other
-- the parameter for my_store_procedure is like '30-(01-03-2012 - 08-03-2012)'
私の変数が正しくありませんか?または、パラメーターに変数を使用する方法が間違っていますか?
アップデート:
このクエリを実行すると:
declare @tgl_other varchar(50);
set @tgl_other = (select top 1 ltrim(rtrim(cast(numweek as char)))+'-('+rangeweek+')' from tbl_weeklyflash where year(dates) = year(getdate()) order by numweek desc);
EXEC my_store_procedure @tgl_other
正常に動作しますが、ステートメントを追加INSERT INTO..
すると動作しません。なぜそれが起こるのですか?
更新 II: 実行しようとするクエリ全体を次に示します。
declare @tgl_other varchar(50);
set @tgl_other = (select top 1 ltrim(rtrim(cast(numweek as char)))+'-('+rangeweek+')' from tbl_weeklyflash where year(dates) = year(getdate()) order by numweek desc);
TRUNCATE TABLE mytable
GO
INSERT INTO mytable (field1, field2)
EXEC my_store_procedure @tgl_other
GO