DECLARE @STRSQL VARCHAR(5000)
DECLARE @DCOUNT INT
SET @STRSQL='SELECT @DCOUNT=COUNT(*) FROM XC_ORDERPRODUCTLIST WHERE X_ParentID=3761 AND X_Branch2SucFlag=1'
EXEC(@STRSQL)
我想给@DCOUNT取值,但是放在字符串里面不能通过

解决方案 »

  1.   

    这样不行吗?
    DECLARE @DCOUNT INT
    SELECT @DCOUNT=COUNT(*) FROM XC_ORDERPRODUCTLIST WHERE X_ParentID=3761 AND X_Branch2SucFlag=1
      

  2.   

    晕倒
    @DCOUNT声明和@DCOUNT附值不在一个作用域
      

  3.   

    DECLARE @STRSQL VARCHAR(5000)
    DECLARE @DCOUNT INT
    SET @STRSQL='SELECT @DCOUNT=COUNT(*) FROM XC_ORDERPRODUCTLIST WHERE X_ParentID=3761 AND X_Branch2SucFlag=1'
    EXEC sp_executesql @STRSQL, N'@DCOUNT INT Output', @DCOUNT Output
    Select @DCOUNT
      

  4.   

    sdhylj(青锋-SS) ,有可能他的語句是一個動態的語句,必須放在@STRSQL。樓主,如果你的語句是一個動態的語句,就用sp_executesql 。如果不需要使用動態語句,就可以直接取@DCOUNT的值.
      

  5.   

    谢谢大家,嗯,我的是动态的语句,我先试试sp_executesql 方法
      

  6.   

    过程需要参数 '@statement' 为 'ntext/nchar/nvarchar' 类型。成了这样
      

  7.   

    不好意思,修改下DECLARE @STRSQL NVARCHAR(4000) --改為NVARCHAR
    DECLARE @DCOUNT INT
    SET @STRSQL= N'SELECT @DCOUNT=COUNT(*) FROM XC_ORDERPRODUCTLIST WHERE X_ParentID=3761 AND X_Branch2SucFlag=1'
    EXEC sp_executesql @STRSQL, N'@DCOUNT INT Output', @DCOUNT Output
    Select @DCOUNT