如何获得动态表的记录数(100)(10分)

  • 主题发起人 主题发起人 zwhc
  • 开始时间 开始时间
Z

zwhc

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个存储过程里,想获得某张表的记录数,该表的表名
是不确定的,请问,该如何写。

部分代码如下:

declare @nn int,@cc varchar(200),@TN varchar(32)
select @TN = "Table1"
select @cc = "select count(*) from " + @TN
exec(@cc)

如何将“exec(@cc)”的结果赋值给 @nn 呢?问题是解决
了:用了一个临时表。可自已也觉得太笨了。所以花 100 分
求更好的方法。如果没好方法的话,这 10 分就权当捧场费吧。
 
declare @tn varchar(100)
declare @nn int
declare @cc char (10)
select @tn ='testtable'

SELECT @nn = max(rows) FROM sysobjects O, sysindexes I, syssegments S WHERE O.id=I.id AND I.indid IN (0,1) AND I.segment=S.segment AND O.type!='S' AND O.name = @tn

select @cc = convert(char(10),@nn)
print @cc

自己想一下吧
 
我用的是 M$ SQL Sever 7.0
出错信息如下:

Server: Msg 207, Level 16, State 3, Line 5
Invalid column name 'segment'.
 
接受答案了.
 
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=336333
 
后退
顶部