在程序中通过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]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)