美姿婷内衣:下面这个sql语句有何问题?
来源:百度文库 编辑:高校问答 时间:2024/10/03 02:00:17
目的是要得到@CNTSTR这个变量的INT值。
但是必须写成string的形式。
可是每次cast那里会出问题。
为什么?
SET @SQLSTR= 'DECLARE @CNTSTR VARCHAR (50)
SELECT @CNTSTR= COUNT(*) FROM ' +@MATCHTAB + ' WHERE [NAME] =''' + @ADDR_ROAD+ '''
PRINT(@CNTSTR)'
PRINT(@SQLSTR)
EXEC(@SQLSTR)
SET @SQLSTR = 'DECLARE @CNT INT
SET @CNT =CAST ('+@CNTSTR+ ' AS INT)
PRINT(@CNT)'
PRINT(@SQLSTR)
EXEC(@SQLSTR)
但是必须写成string的形式。
可是每次cast那里会出问题。
为什么?
SET @SQLSTR= 'DECLARE @CNTSTR VARCHAR (50)
SELECT @CNTSTR= COUNT(*) FROM ' +@MATCHTAB + ' WHERE [NAME] =''' + @ADDR_ROAD+ '''
PRINT(@CNTSTR)'
PRINT(@SQLSTR)
EXEC(@SQLSTR)
SET @SQLSTR = 'DECLARE @CNT INT
SET @CNT =CAST ('+@CNTSTR+ ' AS INT)
PRINT(@CNT)'
PRINT(@SQLSTR)
EXEC(@SQLSTR)
语法没错啊,可能是空值的问题
SET @CNT =CAST ('+@CNTSTR+ ' AS INT)
请确保@CNTSTR不是一个空值,可以在这句前面加一句
if isnull(@CNTSTR,'')='' set @CNTSTR='0'