DECLARE @TABLE VARCHAR(20)
DECLARE @RecordCount int
DECLARE @DYSQL NVARCHAR(2000)
SET @DYSQL= 'SELECT @a=COUNT(*) FROM '+@TABLEexec sp_executesql @sql,N'@aint output',@RecordCount output

解决方案 »

  1.   

    DECLARE @TABLE VARCHAR(20)
    DECLARE @RecordCount int
    DECLARE @DYSQL NVARCHAR(2000) --注意是nvarchar
    SET @DYSQL= 'SELECT @a=COUNT(*) FROM '+@TABLEexec sp_executesql @DYSQL,N'@a int output',@RecordCount output
      

  2.   


    create proc p_test
    @TABLE VARCHAR(20),
    @RecordCount int out
    as
    DECLARE @DYSQL nVARCHAR(2000)
    SET @DYSQL= 'SELECT @RecordCount=COUNT(*) FROM '+@TABLE
    exec SP_EXECUTESQL @DYSQL,N'@RecordCount int out',@RecordCount out
    go--调用:
    declare @RecordCount 
    exec p_test 'aa',@RecordCount out
    select 结果=@RecordCount
      

  3.   

    exec sp_executesql @DYSQL,N'@a int output',@RecordCount outputhttp://expert.csdn.net/Expert/topic/2364/2364046.xml?temp=.829693
    [交流]动态SQL语句