我们都知道用聚合函数count()可以统计表的行数。如果需要统计数据库每个表各自的行数(DBA可能有这种需求),用count()函数就必须为每个表生成一个动态SQL语句并执行,才能得到结果。以前在互联网上看到有一种很好的解决方法,忘记出处了,写下来分享一下。
该方法利用了sysindexes 系统表提供的rows字段。rows字段记录了索引的数据级的行数。解决方法的代码如下:
代码如下:
select schema_name(t.schema_id) as [Schema], t.name a
数据库中有张表User,字段是ID和Name,ID自增。 利用存储过程实现插入时返回当前的行数 代码如下: CREATE PROC Proc_InsertUser name nvarchar(100) AS INSERT INTO dbo.User( Name )VALUES(name) SELECT IDENTITY AS ID 利用全局变量IDENTITY实现。 如果哪里有不正确的地方,欢迎批评指正,共同进步。
您可能感兴趣的文章:IDEN
有时需要在SQL中,定时刷新某张表,比如说是要定时查询某张表的行数,通常做法是手动的按F5去执行来刷新数据。但是如果这个定时查询历时较长,10分钟,或半小时,手动的话肯定是要崩溃了。貌似SQL没有像应用程序自动刷新的功能,可能是我还不知道有这样的功能,于是写了一个类似自动刷新数据的脚本,需要手动中止程序的运行,当然也可能写个条件,自动结束语句的执行。
代码:
1 USE AdventureWorks2008R2
2 GO
3
4 WHILE 1=1
5 BEG
代码如下:
‘数据库表行数函数,这是取表的行数
Function GetTblRows(TblName)
‘如果TblName表名值为空,则
if TblName=”” Then
GetTblRows=”未知TblName”
exit Function
Else
set rec = server.createobject(“adodb.recordset”)
SQL=”EXEC sp_spaceused “&TblName