declare @SQL nvarchar(2000)
DECLARE @tblName nvarchar(50)  
DECLARE @totalRec int
set @SQL=N'select @totalRec=count(*) from '+@tblName
EXEC sp_executesql @SQL,
     N'@totalRec int',
     @totalRec = @totalRec

解决方案 »

  1.   

    declare @SQL nvarchar(2000)
    DECLARE @tblName varchar(50)  
    DECLARE @totalRec int
    set @SQL='select @totalRec=count(*) from '+@tblName
    exec sp_executesql @sql,N'@totalRec int output',@totalRec output
    select @totalRec
      

  2.   

    http://expert.csdn.net/Expert/topic/2364/2364046.xml?temp=.829693
    [交流]动态SQL语句3: 输出参数
    eg:
    declare @num,
            @sqls
    set @sqls='select count(*) from '+@servername+'.a.dbo.b'
    exec(@sqls)
    我如何能将exec执行的结果存入变量@num中declare @num int,
            @sqls nvarchar(4000)
    set @sqls='select @a=count(*) from '+@servername+'.a.dbo.b'
    exec sp_executesql @sqls,N'@a int output',@num output
    select @num
      

  3.   

    现在出现以下错误:服务器: 消息 214,级别 16,状态 2,过程 sp_executesql,行 24
    过程需要参数 '@statement' 为 'ntext/nchar/nvarchar' 类型。
      

  4.   

    declare @SQL Nvarchar(4000)  --注意这里的定义
    DECLARE @tblName varchar(50)  
    DECLARE @totalRec intset @SQL='select @totalRec=count(*) from '+@tblName
    exec sp_executesql @SQL,N'@totalRec int output',@totalRec output