IF @KENGEN_KBN = 'Z'
         SET @DEL = '1'
ELSE
SET @DEL = '0'
END
SET @STRSQL = 'DECLARE cur CURSOR FOR '
SET @STRSQL = @STRSQL + 'SELECT M01_KOUSIN_DATE '
SET @STRSQL = @STRSQL + 'FROM TBL_M01_SYSTM '
SET @STRSQL = @STRSQL + 'WHERE M01_KANRI = ' + @M01_KANRI
SET @STRSQL = @STRSQL + '  AND (M01_DEL_KBN = 0 OR M01_DEL_KBN = ' + @DEL + ')' EXEC(@STRSQL)为什么无法创建游标,EXEC(@STRSQL)总有错误。

解决方案 »

  1.   

    把@STRSQL变量的值print出来,看看正确吗?
      

  2.   

    declare @strSQl varchar(1000)
    declare @M01_KANRI varchar(100)
    declare @DEL varchar(100)
    set @M01_KANRI='1'
    set @del='2'SET @STRSQL = 'DECLARE cur CURSOR FOR '
    SET @STRSQL = @STRSQL + 'SELECT M01_KOUSIN_DATE '
    SET @STRSQL = @STRSQL + 'FROM TBL_M01_SYSTM '
    SET @STRSQL = @STRSQL + 'WHERE M01_KANRI = ' + @M01_KANRI
    SET @STRSQL = @STRSQL + '  AND (M01_DEL_KBN = 0 OR M01_DEL_KBN = ' + @DEL + ')'
    print @strSql