怎么用Sql语句获取一个数据库中的所有表的名字

怎么用Sql语句获取一个数据库中的所有表的名字,第1张

在程序中通过sql语句查询来获得某个数据库的所有表名,代码如下:

SELECT

table_name

FROM

information_schema.tables

WHERE table_schema = 'mydatabasename'

AND table_type = 'base table'

扩展资料

1,利用sys.tables目录视图查询所有表的名字,sys.tables目录视图为每个表对象返回一行. 示例语句如下:

select * from sys.tables

注意:sys.tables目录视图也只有在SQL SERVER2005及以上的版本中才能使用。

2,利用存储过程sp_tables sp_tables存储过程,可返回可在当前环境中查询的对象列表。这代表可在FROM子句中出现的任何对象。 我们可以执行如下语句:

exec sp_tables

在结果集中筛选出所有TABLE_TYPE等于TABLE的记录就是表信息了。

参考资料:百度百科 sql语句

百度百科 sys.tables

--首先创建一个试图

CREATE VIEW dbo.vw_S_SystemObject

AS

SELECT [Name] AS ObjName, Power(2, SysStat &0xf) AS ObjType, [ID] AS ObjID

FROM SysObjects

WHERE (POWER(2, Sysstat &0xf) &253 <>0) AND NOT ((ObjectProperty(ID, N'IsDefaultCnst') = 1)

AND (Category &0x0800 <>0)) AND (ObjectProperty(ID, N'IsMSShipped') <>1 AND (name NOT LIKE N'#%'))

--得到所有的数据表的集合

SELECT DISTINCT A.ObjName

FROM vw_S_SystemObject A

WHERE A.ObjType = 8

ORDER BY A.ObjName

--得到所有数据字段的集合

SELECT A.ObjName AS TableName, B.[Name] AS FiledName, C.[Name] AS 字段类型, B.Prec AS 精度, B.Scale AS 小数

FROM vw_S_SystemObject A INNER JOIN syscolumns B ON A.ObjID = B.[ID] INNER JOIN systypes C ON B.xUserType = C.xUserType

WHERE A.ObjType = 8

ORDER BY A.ObjName, B.[Name]


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

原文地址: https://outofmemory.cn/sjk/9911878.html

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

发表评论

登录后才能评论

评论列表(0条)

保存