为何sql string语句里的变量无法利用?

SET@SQLSTR='DECLARE@CNTSTRVARCHAR(50)DECLARE@CNTINTSELECT@CNTSTR=COUNT(*)FROM'+@MATCH... SET @SQLSTR= 'DECLARE @CNTSTR VARCHAR (50)
DECLARE @CNT INT
SELECT @CNTSTR= COUNT(*) FROM ' +@MATCHTAB + ' WHERE [NAME] =''' + @ADDR_ROAD+ '''
SET @CNT= CAST(@CNTSTR AS INT)
PRINT (@CNT)'
PRINT(@SQLSTR)
EXEC(@SQLSTR)

下面想对@CNT进行判断分析
如:if @CNT=1 ……
但是好像不行啊!
请问如何用临时表来解决这个问题啊?
临时表也在@SQLSTR里面做吗?用完了再drop?
展开
 我来答
abingpow
2006-08-25 · TA获得超过2206个赞
知道大有可为答主
回答量:2830
采纳率:0%
帮助的人:2286万
展开全部
@CNT 是存在于字符串里,使用exec执行的,也就是说 @CNT 只在exec里存在,当exec执行完毕后 @CNT 也就不存在了,所以在exec之后无法再使用 @CNT 里的值了
如果要使用这个值,必须通过一个临时表来传递

临时表在哪里创建都可以,在字符串里插入数据,用完后drop
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式