日期:2014-05-17  浏览次数:20507 次

如何获取SQL中指定数据库名的表数量?
SELECT Name FROM TestData..SysObjects Where XType='U' ORDER BY Name
上述指令为:获取SQL数据库名为TestData中的所有表类型为“用户”的表名,查询结果在“SQL查询分析器”被列出来,现在的问题是

1、在程序中,如何将查询到的每个表名保存起来?

2、如何获取该数据中类型为“用户”的表总数?

请各位赐教!多谢!
------最佳解决方案--------------------
SELECT Name into #A FROM SysObjects Where XType='U' ORDER BY Name;select * from #A;
select count(1) from #A;drop table #A;

------其他解决方案--------------------
把下面的数据插入一个表,可以是临时表可以是实体表。看你后续的使用
SELECT  NAME
FROM    sys.tables
ORDER BY name
 
第二个问题不是很明白你要问什么
------其他解决方案--------------------
多谢lixzhong 
已可以获取表总数了。如何将所有的表名保存在一个数组中呢,如用VC,VB编程?
------其他解决方案--------------------
conn.Execute "SELECT Name into #A FROM TestData..SysObjects Where XType='U' ORDER BY Name;select * from #A;"
conn.Execute "select count(1) from #A;drop table #A;"

上述是在VB中执行的命令,如何将获取的表总数取出来呢?
------其他解决方案--------------------
是不是把选择的数据插入到 表A中,表A存放在那里?
------其他解决方案--------------------
A表示个临时表。。你可以自己建立一个只有Name的表存方查询出来的结果。
------其他解决方案--------------------
引用:
conn.Execute "SELECT Name into #A FROM TestData..SysObjects Where XType='U' ORDER BY Name;select * from #A;"
conn.Execute "select count(1) from #A;drop table #A;"

上述是在VB中执行的命令,如何将获取的表……

只在程序中用的话 SELECT Name FROM TestData..SysObjects Where XType='U' 就够了。
把取到的结果循环赋值给数组就OK。
数组的成员数 就是表总数。
------其他解决方案--------------------
引用:
conn.Execute "SELECT Name into #A FROM TestData..SysObjects Where XType='U' ORDER BY Name;select * from #A;"
conn.Execute "select count(1) from #A;drop table #A;"

上述是在VB中执行的命令,如何将获取的表……

将结果赋给RecordSet从结果集中取出数据。