1
我已经声明并设置了一些变量。然后我想使用该变量值作为执行存储过程的参数。但我总是得到错误如何在执行存储过程中使用变量参数?
必须声明标量变量。
这里是我的变量:
--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)'
这是我的变量不正确?或者我错误的方式来使用变量的参数?
UPDATE:
如果我执行这个查询:
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..
声明它不会工作。为什么会发生?
UPDATE 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
sql似乎是正确的。你执行整个sql批处理还是只是插入到...语句? – praveen 2012-07-31 04:25:56
@praveen我执行整个sql批处理。我已更新我的问题以获取更多详细信息 – blankon91 2012-07-31 04:36:55
您可以发布您的SP吗? – praveen 2012-07-31 04:42:03