sql server2008怎么实现查询某个数据库中所有的表名

sql server2008怎么实现查询某个数据库中所有的表名,第1张

你是要写代码生成器么--这是查表的数量Select [name] from sysObjects Where xtype='U'and [name]<>'dtproperties' Order By [name]--得到数据库中所有用户视图Select [name] From sysObjects Where xtype='V' And [name]<>'syssegments' And [name]<>'sysconstraints' Order By [name]--获得指定表中所有的列Selectcname As ColumnName,tname As TypeNameFrom syscolumns c, systypes t, sysobjects oWhere cxtype = txusertypeAnd cid = oidAnd oname = 'Book'Order By ccolorder

--读取库中的所有表名

select name from sysobjects where xtype='u'

--读取指定表的所有列名

select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名')

获取数据库表名和字段

sqlserver中各个系统表的作用

sysaltfiles 主数据库 保存数据库的文件

syscharsets 主数据库 字符集与排序顺序

sysconfigures 主数据库 配置选项

syscurconfigs 主数据库 当前配置选项

sysdatabases 主数据库 服务器中的数据库

syslanguages 主数据库 语言

syslogins 主数据库 登陆帐号信息

sysoledbusers 主数据库 链接服务器登陆信息

sysprocesses 主数据库 进程

sysremotelogins主数据库 远程登录帐号

syscolumns 每个数据库 列

sysconstrains 每个数据库 限制

sysfilegroups 每个数据库 文件组

sysfiles 每个数据库 文件

sysforeignkeys 每个数据库 外部关键字

sysindexs 每个数据库 索引

sysmenbers 每个数据库 角色成员

sysobjects 每个数据库 所有数据库对象

syspermissions 每个数据库 权限

systypes 每个数据库 用户定义数据类型

select 列名=name from syscolumns where id=object_id(N'要查的表名')

命令:

select

sql 数据库查询表格的命令:用SELECT 语句

用法:

查询某一列:SELECT 列名称 FROM 表名称

查询所有列:SELECT FROM 表名称

注释:

SQL 语句对大小写不敏感。SELECT 等效于 select。

基本无法找,列名都不知道,怎么匹配呢?要是有重复的数据怎么筛选呢?

如果实在是要找也行,但是需要时间很长

具体的 *** 作就是:

1、查询数据库表

2、循环根据表查询字段,并拼接sql

拼接sql类似于:

select from table

where column1 like '%数据%'

or column2 like '%数据%'

or column3 like '%数据%'

……

3、如果匹配成功,便将表名存入临时表或者表变量中(当然在此之前需要建立临时表或表变量)

4、完成循环后,读取临时表或者表变量,这就是你要找的表

5、如果要进一步筛选字段,则需要下一步动作,循环找到列名,也可以在表循环的时候嵌套循环处理,但是建议不要嵌套循环

字段的寻找和表的寻找类似

sql要写就太多,就不写啦

--查询数据库里所有表名和字段名的语句

--SQL 查询所有表名:

SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'

SELECT FROM INFORMATION_SCHEMATABLES

--查询表的所有字段名:

SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID(' 表名' )

SELECT FROM INFORMATION_SCHEMATABLES

SELECT FROM INFORMATION_SCHEMAVIEWS

SELECT FROM INFORMATION_SCHEMACOLUMNS

---------以下为其他数据库查询表----------

--ORACLE 查看所有表名:

SELECT TABLE_NAME FROM USER_TABLES

--ACCESS 查看所有表名:

SELECT NAME FROM MSYSOBJECTS WHERE TYPE=1 AND FLAGS=0

--MSYSOBJECTS 是系统对象,默认情况是隐藏的。通过工具、选项、视图、显示、系统对象可以使之显示出来。

1、查询SQL中的所有表: Select TABLE_NAME FROM 数据库名称INFORMATION_SCHEMATABLES Where TABLE_TYPE='BASE TABLE' 执行之后,就可以看到数据库中所有属于自己建的表的名称 2、查询SQL中所有表及列: Select dbosysobjectsname as Table_name, dbosyscolumnsname AS Column_name FROM dbosyscolumns INNER JOIN dbosysobjects ON dbosyscolumnsid = dbosysobjectsid Where (dbosysobjectsxtype = 'u') AND (NOT (dbosysobjectsname LIKE 'dtproperties')) 3、在Sql查询分析器,还有一个简单的查询方法: EXEC sp_MSforeachtable @command1="sp_spaceused ''" 执行完之后,就可以看到数据库中所有用户表的信息 4、查询总存储过程数:select count() 总存储过程数 from sysobjects where xtype='p' 附:xtype类型D = 默认值或 DEFAULT 约束

F = FOREIGN KEY 约束L = 日志FN = 标量函数

IF = 内嵌表函数

P = 存储过程

PK = PRIMARY KEY 约束(类型是 K)

RF = 复制筛选存储过程S = 系统表TF = 表函数

TR = 触发器U = 用户表UQ = UNIQUE 约束(类型是 K)V = 视图X = 扩展存储过程 另:在sqlserver中取得某个数据库中所有表名的sql语句 select sysobjectsname from sysobjectsxtype ='U';SELECT name

WHERE (xtype = 'U') 在数据库的sysobjects表里有这个数据库全部表的信息, xtype值为'U'的就是表名 注意:一般通过上述方法获得全部用户表示都会有一个dtproperties表,SQLSERVER 默认它也是用户表,想要从用户表中排出,需要加上限定条件 status>0,即:select from sysobjects where xtype='U' and status>0

以上就是关于sql server2008怎么实现查询某个数据库中所有的表名全部的内容,包括:sql server2008怎么实现查询某个数据库中所有的表名、sql怎么查询一个数据库所有表列数、SQL数据库里面查询表格的命令是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9357264.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存