zq5143 发表于 2008-12-11 13:40

在IQ中如何查询所有表的行数,急!

如题!想用一条SQL语句或是存储过程来解决。是IQ,不是ASE

sean_server 发表于 2008-12-11 17:57

我没有用过IQ,我的想法根据ASE的,是利用sp_spaceused这个存储过程可以返回表的行数
例如select "sp_spaceused “+name from sysobjects where type="U",把返回的内容保存到一个文件中,例如row.sql,
然后利用isql -i导入文件来执行,返回所有表的字段,
但是这里面有个问题,spaceused返回的内容有很多字段,我想不出来怎么把其中towtotal这个字段取出来。
抛个转头,不知道别人有没有什么方法

zq5143 发表于 2008-12-12 10:29

IQ中没有sp_spaceused这个过程。
根据楼上的思路,下列sql是列出库中所有表的select count(*) 语句
select 'select count(*) from '+table_name+'' fromSYSTABLE where creator=1 order by table_name
还没有测试,待续~~~

zq5143 发表于 2008-12-12 13:17

还是写个小程序或是存储过程算了

[ 本帖最后由 zq5143 于 2008-12-12 16:56 编辑 ]

donethat 发表于 2008-12-24 23:24

something like (not exactly right,因为没有实际测过)

declare @t char(255)
declare @c cursor for select name from sysobjects where type='U'
open c
fetch c into @t
while @@sqlstatus <> 2
begin
exec "select count(*) from @t"
fetch c into @t
end

coolmax 发表于 2008-12-25 09:52

回复 #5 donethat 的帖子

iq支持游标么?

sydwiq 发表于 2008-12-25 10:15

IQ支持游标,只是IQ注重效率,从效率方面考虑,应用如果能转换成批处理,就不建议使用游标。

zq5143 发表于 2009-03-11 13:09

回复 #5 donethat 的帖子

测试没有通过~!
页: [1]
查看完整版本: 在IQ中如何查询所有表的行数,急!