如何获取SQL中指定数据库名的表数量?

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

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

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

请各位赐教!多谢!
...全文
244 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuifengde 2012-11-21
  • 打赏
  • 举报
回复
引用 4 楼 z_jzhao 的回复:
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从结果集中取出数据。
开启时代 2012-11-20
  • 打赏
  • 举报
回复
引用 4 楼 z_jzhao 的回复:
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。 数组的成员数 就是表总数。
myjavamosquito 2012-11-20
  • 打赏
  • 举报
回复
A表示个临时表。。你可以自己建立一个只有Name的表存方查询出来的结果。
z_jzhao 2012-11-20
  • 打赏
  • 举报
回复
是不是把选择的数据插入到 表A中,表A存放在那里?
z_jzhao 2012-11-20
  • 打赏
  • 举报
回复
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中执行的命令,如何将获取的表总数取出来呢?
z_jzhao 2012-11-20
  • 打赏
  • 举报
回复
多谢lixzhong 已可以获取表总数了。如何将所有的表名保存在一个数组中呢,如用VC,VB编程?
發糞塗牆 2012-11-20
  • 打赏
  • 举报
回复
把下面的数据插入一个表,可以是临时表可以是实体表。看你后续的使用
SELECT  NAME
FROM    sys.tables
ORDER BY name
第二个问题不是很明白你要问什么
开启时代 2012-11-20
  • 打赏
  • 举报
回复
SELECT Name into #A FROM SysObjects Where XType='U' ORDER BY Name;select * from #A; select count(1) from #A;drop table #A;
一 摘要 现在生活快节奏的生活,银行卡成为现代人的必备物品。 ATM机是时代的成功产物。ATM取款机是为了方便人们管理和存储自己的钱财,一般的 ATM机可以取款,转账,查询余额修改密码。根据这些功能可用SQL sever模拟出的登陆,查询余额的功能。首先要做出整个系统的E- R图,然后进行数据库系统逻辑设计,做出系统流图,概述ATM各个操作间的数据流流 向以及各个实体之间所具有的一些操作。接着进行数据库系统的物理设计。整个系统 需要的软件有SQL server 2000,以及Visual Studio 2005 。 二 数据库的建立 1. 数据库规则 1. 数据库:英文或英文缩写。如:ATM。 2. 数据库:汉译英,或者英文缩写,如:cardInfo。 3. 字段命:全部采用英文简写,如卡号—cardID。 2.总的E-R图(用Visio 2003软件可以画出) 1. 数据库系统逻辑设计 这样的系统流图清晰描绘了ATM各个操作间的数据流流向各个实体之间的操作 2. 数据库系统物理设计 通过E-R图的建立可以看到ATM系统共有3个格 1. 银行卡基本信息 "字段 "英文 "主键"数据类型"数据长 "NULL"备注 " " " " " "度 " " " "卡号 "cardID " "varchar "20 "NOT "银行卡的账号 " "卡类型 "curtype " "Varchar "10 "NOT "银行卡的类型 " "存储类型"Savingtype" "Varchar "8 "NOT "存款类型 " "开户日期"Openday " "Datetime" "NOT "开户日期 " "金额 "Openmoney " "Money " "NOT "卡上银行 " "密码 "Password " "varchar "6 "NOT "卡的密码 " "卡的序号"customerID" "Int " "NOT "开户时卡的序号" 2)转入金额 "字段"英文 "主键 "数据类型 "数据长"NULL"备注 " " " " " "度 " " " "源卡号"SourcecardID " "varchar "20 "NOT "原帐户卡号 " "卡号 "TargetcardID " "varchar "20 " "要转入的账户卡号" "金额 "TransAmount " "Money " " "转账的数量 " "日期 "Transdate " "Datetime " "NOT "转账日期 " 3)转出金额 "字段 "英文 "主键 "数据类型"数据长度 "NULL "备注 " "源账号 "SourcecardID " "char "20 "NOT "原账号 " "账号 "TragetcardID " "char "20 "NOT "目标账号 " "金额 "Transamount " "Money " "NOT "转账金额 " "日期 "TransTime " " " "NOT "转账日期 " 5) 数据库系统代码设计 a) 登陆代码 确定键代码(事件Button12_click) Dim sqlstr As String Dim dataset As New DataSet() sqlstr = "select * from cardInfo where cardID='" + TextBox1.Text + "'" '获取cardInfocardID和textbox1相同的数据 dataset = GetDataFromDB(sqlstr) '获取sqlstr指定的数据 Dim count As Integer count = dataset.Tables(0).Rows.Count ' 统计dataset的行数 If count = 0 Then MsgBox("没有此卡号") Else If TextBox2.Text = dataset.Tables(0).Rows(0)("pass") Then Dim MDIChild As New Form3() Form3.Show() Me.Finalize() Else MsgBox("密码错误!") End If End If 退位键代码(事件Button14_click) Dim strlen As String If TextBox1.TextLength < 19 Then strlen = TextBox1.Text.Remove(TextBox1.Text.Length - 1, 1) '在原textbox字符串长度减一 TextBox1.Text = strlen '重新显示 Exit Sub Else strlen = Text

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧