DECLARE @table NVARCHAR(300)
DECLARE @name NVARCHAR(300)
DECLARE cursor_employee CURSOR LOCAL
FOR
SELECT name
FROM sys.objects
WHERE type = 'U'
DECLARE @sqlsentence NVARCHAR(1000)
DECLARE @t1 INT
OPEN cursor_employee
FETCH NEXT FROM cursor_employee INTO @table
WHILE @@FETCH_STATUS = 0
BEGIN
SET @name = REPLACE(@table, 'xml_', '')
SET @sqlsentence = 'select @t1=COUNT(*) from ' + @table + ';'
EXEC sp_executesql @sqlsentence, N'@t1 int out', @t1 OUT
SELECT @table ,
@t1
FETCH NEXT FROM cursor_employee INTO @table
END
CLOSE cursor_employee
DEALLOCATE cursor_employee
end
16 个解决方案
#1
给表加触发器,每次insert数据,就update记录表中对应的表的数据条数
#2
大神你又来了,上面那个还是你教我写的,我新手啊,触发器没用过,不太会
#3
这个统计需要是实时的吗?如果不需要写个作业每天执行统计一次也行。触发器就是实时的,楼主可以先百度看一下,挺简单的
#4
给表加触发器,每次insert数据,就update记录表中对应的表的数据条数
大神你又来了,上面那个还是你教我写的,我新手啊,触发器没用过,不太会
这个统计需要是实时的吗?如果不需要写个作业每天执行统计一次也行。触发器就是实时的,楼主可以先百度看一下,挺简单的
对啊,实时的,那边改了,这边结果就得改,我们经理说要写个动态游标sql
#5
直接用系统视图
sysindexes/sys.partitions
e.g.
sysindexes/sys.partitions
e.g.
SELECT b.name ,
a.rows
FROM sysindexes AS a
INNER JOIN sys.tables AS b ON b.object_id = a.id
WHERE indid IN ( 0, 1 );
#6
给表加触发器,每次insert数据,就update记录表中对应的表的数据条数
大神你又来了,上面那个还是你教我写的,我新手啊,触发器没用过,不太会
这个统计需要是实时的吗?如果不需要写个作业每天执行统计一次也行。触发器就是实时的,楼主可以先百度看一下,挺简单的
对啊,实时的,那边改了,这边结果就得改,我们经理说要写个动态游标sql
表多吗?不多可以用触发器实现
#7
给表加触发器,每次insert数据,就update记录表中对应的表的数据条数
大神你又来了,上面那个还是你教我写的,我新手啊,触发器没用过,不太会
这个统计需要是实时的吗?如果不需要写个作业每天执行统计一次也行。触发器就是实时的,楼主可以先百度看一下,挺简单的
对啊,实时的,那边改了,这边结果就得改,我们经理说要写个动态游标sql
表多吗?不多可以用触发器实现
那么我先试试吧,不行,我再问你啊
#8
直接用系统视图
sysindexes/sys.partitions
e.g.SELECT b.name ,
a.rows
FROM sysindexes AS a
INNER JOIN sys.tables AS b ON b.object_id = a.id
WHERE indid IN ( 0, 1 );
可是现在查询数据条数能查,关键怎么动态把这记录插入到一张表里啊
#9
给表加触发器,每次insert数据,就update记录表中对应的表的数据条数
大神你又来了,上面那个还是你教我写的,我新手啊,触发器没用过,不太会
这个统计需要是实时的吗?如果不需要写个作业每天执行统计一次也行。触发器就是实时的,楼主可以先百度看一下,挺简单的
对啊,实时的,那边改了,这边结果就得改,我们经理说要写个动态游标sql
表多吗?不多可以用触发器实现
表挺多的,有点难搞啊,触发器,我看都是单张表的啊
#10
可是现在查询数据条数能查,关键怎么动态把这记录插入到一张表里啊
简单实现,不实时更新时这样用
异步同步表记录时用以上语句在JOB里调度更新就行了,比如设置每分钟更新一下
要求实时更新表记录时,在触发器调用上面语句更新表记录
不需要动态低效率,原则直接用上面方法取表记录更新
#11
可是现在查询数据条数能查,关键怎么动态把这记录插入到一张表里啊
简单实现,不实时更新时这样用
异步同步表记录时用以上语句在JOB里调度更新就行了,比如设置每分钟更新一下
要求实时更新表记录时,在触发器调用上面语句更新表记录
不需要动态低效率,原则直接用上面方法取表记录更新
好高端,听不懂
#12
表挺多的,有点难搞啊,触发器,我看都是单张表的啊
不用触发器要不就写个方法或者存储过程,每次程序改变数据库的时候执行一下存储过程。
#13
表挺多的,有点难搞啊,触发器,我看都是单张表的啊
不用触发器要不就写个方法或者存储过程,每次程序改变数据库的时候执行一下存储过程。
之前写的为什么不是动态啊,@t1参数不就是用来接收条数么,我们把SET @sqlsentence=后面的查询语句改了行不行啊
SET @sqlsentence = 'select @t1=COUNT(*) from ' + @table + ';'
#14
好高端,听不懂
这系统视图记录表名和对应的当前表记录,你自己执行一下看效果
你用的方法都会用到表扫描和索引扫描(会取最小的索引),这样效率低方法不可取
#15
表挺多的,有点难搞啊,触发器,我看都是单张表的啊
不用触发器要不就写个方法或者存储过程,每次程序改变数据库的时候执行一下存储过程。
之前写的为什么不是动态啊,@t1参数不就是用来接收条数么,我们把SET @sqlsentence=后面的查询语句改了行不行啊SET @sqlsentence = 'select @t1=COUNT(*) from ' + @table + ';'
额,不一定要用动态的,可以用大版写的那个,你们经理为什么要让你们非得用动态的呢?
#16
表挺多的,有点难搞啊,触发器,我看都是单张表的啊
不用触发器要不就写个方法或者存储过程,每次程序改变数据库的时候执行一下存储过程。
之前写的为什么不是动态啊,@t1参数不就是用来接收条数么,我们把SET @sqlsentence=后面的查询语句改了行不行啊SET @sqlsentence = 'select @t1=COUNT(*) from ' + @table + ';'
额,不一定要用动态的,可以用大版写的那个,你们经理为什么要让你们非得用动态的呢?
没事了,我调用下存储过程就行了
#1
给表加触发器,每次insert数据,就update记录表中对应的表的数据条数
#2
给表加触发器,每次insert数据,就update记录表中对应的表的数据条数
大神你又来了,上面那个还是你教我写的,我新手啊,触发器没用过,不太会
#3
给表加触发器,每次insert数据,就update记录表中对应的表的数据条数
大神你又来了,上面那个还是你教我写的,我新手啊,触发器没用过,不太会
这个统计需要是实时的吗?如果不需要写个作业每天执行统计一次也行。触发器就是实时的,楼主可以先百度看一下,挺简单的
#4
给表加触发器,每次insert数据,就update记录表中对应的表的数据条数
大神你又来了,上面那个还是你教我写的,我新手啊,触发器没用过,不太会
这个统计需要是实时的吗?如果不需要写个作业每天执行统计一次也行。触发器就是实时的,楼主可以先百度看一下,挺简单的
对啊,实时的,那边改了,这边结果就得改,我们经理说要写个动态游标sql
#5
直接用系统视图
sysindexes/sys.partitions
e.g.
sysindexes/sys.partitions
e.g.
SELECT b.name ,
a.rows
FROM sysindexes AS a
INNER JOIN sys.tables AS b ON b.object_id = a.id
WHERE indid IN ( 0, 1 );
#6
给表加触发器,每次insert数据,就update记录表中对应的表的数据条数
大神你又来了,上面那个还是你教我写的,我新手啊,触发器没用过,不太会
这个统计需要是实时的吗?如果不需要写个作业每天执行统计一次也行。触发器就是实时的,楼主可以先百度看一下,挺简单的
对啊,实时的,那边改了,这边结果就得改,我们经理说要写个动态游标sql
表多吗?不多可以用触发器实现
#7
给表加触发器,每次insert数据,就update记录表中对应的表的数据条数
大神你又来了,上面那个还是你教我写的,我新手啊,触发器没用过,不太会
这个统计需要是实时的吗?如果不需要写个作业每天执行统计一次也行。触发器就是实时的,楼主可以先百度看一下,挺简单的
对啊,实时的,那边改了,这边结果就得改,我们经理说要写个动态游标sql
表多吗?不多可以用触发器实现
那么我先试试吧,不行,我再问你啊
#8
直接用系统视图
sysindexes/sys.partitions
e.g.SELECT b.name ,
a.rows
FROM sysindexes AS a
INNER JOIN sys.tables AS b ON b.object_id = a.id
WHERE indid IN ( 0, 1 );
可是现在查询数据条数能查,关键怎么动态把这记录插入到一张表里啊
#9
给表加触发器,每次insert数据,就update记录表中对应的表的数据条数
大神你又来了,上面那个还是你教我写的,我新手啊,触发器没用过,不太会
这个统计需要是实时的吗?如果不需要写个作业每天执行统计一次也行。触发器就是实时的,楼主可以先百度看一下,挺简单的
对啊,实时的,那边改了,这边结果就得改,我们经理说要写个动态游标sql
表多吗?不多可以用触发器实现
表挺多的,有点难搞啊,触发器,我看都是单张表的啊
#10
可是现在查询数据条数能查,关键怎么动态把这记录插入到一张表里啊
简单实现,不实时更新时这样用
异步同步表记录时用以上语句在JOB里调度更新就行了,比如设置每分钟更新一下
要求实时更新表记录时,在触发器调用上面语句更新表记录
不需要动态低效率,原则直接用上面方法取表记录更新
#11
可是现在查询数据条数能查,关键怎么动态把这记录插入到一张表里啊
简单实现,不实时更新时这样用
异步同步表记录时用以上语句在JOB里调度更新就行了,比如设置每分钟更新一下
要求实时更新表记录时,在触发器调用上面语句更新表记录
不需要动态低效率,原则直接用上面方法取表记录更新
好高端,听不懂
#12
表挺多的,有点难搞啊,触发器,我看都是单张表的啊
不用触发器要不就写个方法或者存储过程,每次程序改变数据库的时候执行一下存储过程。
#13
表挺多的,有点难搞啊,触发器,我看都是单张表的啊
不用触发器要不就写个方法或者存储过程,每次程序改变数据库的时候执行一下存储过程。
之前写的为什么不是动态啊,@t1参数不就是用来接收条数么,我们把SET @sqlsentence=后面的查询语句改了行不行啊
SET @sqlsentence = 'select @t1=COUNT(*) from ' + @table + ';'
#14
好高端,听不懂
这系统视图记录表名和对应的当前表记录,你自己执行一下看效果
你用的方法都会用到表扫描和索引扫描(会取最小的索引),这样效率低方法不可取
#15
表挺多的,有点难搞啊,触发器,我看都是单张表的啊
不用触发器要不就写个方法或者存储过程,每次程序改变数据库的时候执行一下存储过程。
之前写的为什么不是动态啊,@t1参数不就是用来接收条数么,我们把SET @sqlsentence=后面的查询语句改了行不行啊SET @sqlsentence = 'select @t1=COUNT(*) from ' + @table + ';'
额,不一定要用动态的,可以用大版写的那个,你们经理为什么要让你们非得用动态的呢?
#16
表挺多的,有点难搞啊,触发器,我看都是单张表的啊
不用触发器要不就写个方法或者存储过程,每次程序改变数据库的时候执行一下存储过程。
之前写的为什么不是动态啊,@t1参数不就是用来接收条数么,我们把SET @sqlsentence=后面的查询语句改了行不行啊SET @sqlsentence = 'select @t1=COUNT(*) from ' + @table + ';'
额,不一定要用动态的,可以用大版写的那个,你们经理为什么要让你们非得用动态的呢?
没事了,我调用下存储过程就行了