代码如下:DECLARE @var1 INT
SET @var1=1578 --1578是代码外部传入的值,在实际运行时会变化
EXEC ('SELECT col1 FROM tTable WHERE col2=@var1')系统提示@var1未声明,可代码中的第1行不是已经声明@var1了?!紧急求助,在线等

解决方案 »

  1.   

    EXEC作用域的问题,改动一下即可DECLARE @var1 INT
    SET @var1=1578 --1578是代码外部传入的值,在实际运行时会变化
    EXEC ('SELECT col1 FROM tTable WHERE col2='+@var1)
      

  2.   

    @var1是变量,要在引号外面:DECLARE @var1 INT
    SET @var1=1578 --1578是代码外部传入的值,在实际运行时会变化
    EXEC ('SELECT col1 FROM tTable WHERE col2='+@var1+'')
      

  3.   

    DECLARE @var1 INT
    SET @var1=1578 --1578是代码外部传入的值,在实际运行时会变化
    EXEC ('SELECT col1 FROM tTable WHERE col2='+cast(@var1 as varchar(10)))