存储过程中:
    DECLARE @T08_COUNT int
    SET @T08_COUNT = 0
    DECLARE @T08_COUNT_SQL varchar(300)    SET @T08_COUNT_SQL = 'SELECT @T08_COUNT  = count(*) FROM [TABLE_NAME] WHERE [ID] =''' + @ID + ''' and [KEY_NMM] =''REKI_LIST''' 
    EXEC (@T08_COUNT_SQL)执行存储过程,却抱错说 @T08_COUNT 没有定义? 但是上面定义了呀!
不明白?
求助!

解决方案 »

  1.   

    SET @T08_COUNT_SQL = 'SELECT'+ @T08_COUNT+'  = count(*) FROM [TABLE_NAME] WHERE [ID] =''' + @ID + ''' and [KEY_NMM] =''REKI_LIST'''
      

  2.   

    DECLARE @T08_COUNT int
        SET @T08_COUNT = 0
        DECLARE @T08_COUNT_SQL Nvarchar(300) --改為Nvarchar    SET @T08_COUNT_SQL = 'SELECT @T08_COUNT  = count(*) FROM [TABLE_NAME] WHERE [ID] =''' + @ID + ''' and [KEY_NMM] =''REKI_LIST''' 
    EXEC sp_executesql @T08_COUNT_SQL,N'@T08_COUNT int output',@T08_COUNT output --使用sp_executesql
      

  3.   

    xmlquit(下輩子再也不玩電腦) ( ) 信誉:100  2007-08-06 15:21:06  得分: 0  
     
     
       SET @T08_COUNT_SQL = 'SELECT'+ @T08_COUNT+'  = count(*) FROM [TABLE_NAME] WHERE [ID] =''' + @ID + ''' and [KEY_NMM] =''REKI_LIST'''
      
     
    -------------
    上次好象犯了同樣的錯誤的。 :)
      

  4.   

    create proc test_Proc @ID int
    as
    set quoted_identifier offDECLARE @T08_COUNT int
    SET @T08_COUNT = 0
    DECLARE @T08_COUNT_SQL nvarchar(300)SET @T08_COUNT_SQL = "SELECT @T08_COUNT = count(*) FROM [TABLE_NAME] WHERE [ID] ='" + ltrim(@ID) + "' and [KEY_NMM] ='REKI_LIST'" exec sp_executesql @T08_COUNT_SQL,'@T08_COUNT int output',@T08_COUNT output
    select @T08_COUNT