首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请问: 获取由变量来指定表名的记录总数

2012-01-16 
请教: 获取由变量来指定表名的记录总数我想实现统计一个用户指定表里的记录数.尝试了几个方法都不行.decla

请教: 获取由变量来指定表名的记录总数
我想实现统计一个用户指定表里的记录数.   尝试了几个方法都不行.

declare   @table   varchar,   @recordCount   int
--   注,   @table变量是用于统计记录数的表

set   @table   =   'article '

/*
select   @recordCount=   count(*)   from   article   --最终效果,相当于@table变量的值为 'article '
*/

/*
select   @recordCount   =   count(*)   from   @table   --错误,   "必须声明变量 '@table ' "
*/

/*
execute( 'SELECT   @reocrdCount   =   count(*)   from   '   +   @table)   --错误,   "必须声明变量 '@recordCount "
*/



[解决办法]
declare @table varchar(10)
declare @recordCount int
set @table = 'ttPoi '

exec( 'select count(*) from ' + @table)
return @@Rowcount



[解决办法]
别用exec,要用 exec sp_executesql ,这样可以传参数,你先看帮助吧.看看sp_executesql 的用法.如果用exec的话,变量只在动态语句中有生存期.但是你的表名要用变量,又必须要用动态sql
[解决办法]
--try

declare @table varchar(255), @recordCount int
set @table= '表名 '
declare @sql nvarchar(1000)
set @sql= 'select @recordCount=count(*) from [ '+@table+ '] '

exec sp_executesql @sql, N '@recordCount int output ', @recordCount output
select @recordCount

热点排行