下面这个sql语句有何问题?

来源:百度知道 编辑:UC知道 时间:2024/05/09 15:47:50
目的是要得到@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)

语法没错啊,可能是空值的问题

SET @CNT =CAST ('+@CNTSTR+ ' AS INT)

请确保@CNTSTR不是一个空值,可以在这句前面加一句

if isnull(@CNTSTR,'')='' set @CNTSTR='0'