读书人

动态SQL语句中输出参数的有关问题?达

发布时间: 2012-03-06 20:47:55 作者: rapoo

动态SQL语句中输出参数的问题??达人进
DECLARE @S VARCHAR(50)
DECLARE @ind INT
DECLARE @cus INT
Declare @strTmp nVarchar(2000)

SELECT @S=CASE FSRC WHEN 6008 THEN 'SALE_PLAN_HTY ' WHEN 6009 THEN 'LET_PLAN_HTY ' END FROM CUS_REC_EDIT WHERE FID=3

set @strTmp=( 'SELECT @ind= B.FINDUSTRY,@cus=B.FCUSTOMER FROM CUS_REC_EDIT A INNER JOIN
(SELECT * FROM '+ @S + ' ) B ON A.FSRC_ID =B.FID WHERE A.FID=3 ' )

exec sp_executesql @strTmp,N '@ind int output ',@IND OUTPUT,N '@cus int output ',@CUS OUTPUT

SELECT @IND,@CUS
-------------
显示错误

消息 137,级别 15,状态 1,第 1 行
必须声明标量变量 "@cus "。
消息 102,级别 15,状态 1,第 2 行
'B ' 附近有语法错误。


我想把那个字段的值输出来。。。。就这个要求。。谢谢

[解决办法]
多了西,再修改下。


DECLARE @S VARCHAR(50)
DECLARE @ind INT
DECLARE @cus INT
Declare @strTmp nVarchar(2000)
SELECT @S=CASE FSRC WHEN 6008 THEN 'SALE_PLAN_HTY ' WHEN 6009 THEN 'LET_PLAN_HTY ' END FROM CUS_REC_EDIT WHERE FID=3

set @strTmp=( 'SELECT @ind= B.FINDUSTRY,@cus=B.FCUSTOMER FROM CUS_REC_EDIT A INNER JOIN
(SELECT * FROM '+ @S + ' ) B ON A.FSRC_ID =B.FID WHERE A.FID=3 ' )
exec sp_executesql @strTmp,N '@ind int output, @cus int output ',@IND OUTPUT,@CUS OUTPUT

SELECT @IND,@CUS

读书人网 >SQL Server

热点推荐