Sql server 如何查询SQL server数据库中的完整表名列表
我需要遍历数据库中的所有表。我正在使用thsi查询进行此操作:Sql server 如何查询SQL server数据库中的完整表名列表,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我需要遍历数据库中的所有表。我正在使用thsi查询进行此操作: SELECT so.name, so.* FROM sysobjects so WHERE so.xtype = 'U' 这适用于“dbo”模式中的所有表,但不适用于任何其他模式。我希望输出如下: 用户地址 用户.电话号码 dbo.GlobalSettings dbo.配置 相反,我得到的是: 地址 电话号码 全球设置 配置 当我尝试构造动态SQL查询时,它失败了,因为它找不到地址表和电话号码表,因为它们的模式不是默认的“dbo”
SELECT so.name, so.*
FROM sysobjects so
WHERE so.xtype = 'U'
这适用于“dbo”模式中的所有表,但不适用于任何其他模式。我希望输出如下:
用户地址
用户.电话号码
dbo.GlobalSettings
dbo.配置
相反,我得到的是:
地址
电话号码
全球设置
配置
当我尝试构造动态SQL查询时,它失败了,因为它找不到地址表和电话号码表,因为它们的模式不是默认的“dbo”
有什么想法吗?怎么样:
Select Schema_Name + '.' + Table_Name from Information_Schema.Tables
在SQL Server 2005及更高版本中,您不应再使用不推荐使用的sysobjects和sytable以及这些视图 改用“sys”目录视图:
SELECT * FROM sys.tables
也应适用于“dbo”模式以外的模式。在SQL Server 2005/2008中:
SELECT * FROM information_schema.tables
在SQL Server 2000中:
SELECT * FROM sysobjects WHERE xtype='U'
什么版本的SQL Server?您可以使用SYSTABLES:这是Sql Server 2000吗(我相信它来自您发布的Sql)?@OMG Ponies-否,信息\u schema.tables将在Sql Server上工作。您可以参考此链接:+1:很抱歉,我已更正并撤回我先前的声明当Microsoft遵守标准时,给予他们信任非常重要:)