【发布时间】:2008-11-24 19:36:48
【问题描述】:
我有一个包含许多表和存储过程的大型数据库,我想查找并查看,例如,是否有一个名称包含“设置”的表。我对 SqlServer 的系统数据库(如 master、msdb 等)不太熟悉,我知道有一种方法可以查询其中一个数据库以获取我需要的内容,有人知道该怎么做吗?
谢谢你, 雷。
【问题讨论】:
标签: sql-server
我有一个包含许多表和存储过程的大型数据库,我想查找并查看,例如,是否有一个名称包含“设置”的表。我对 SqlServer 的系统数据库(如 master、msdb 等)不太熟悉,我知道有一种方法可以查询其中一个数据库以获取我需要的内容,有人知道该怎么做吗?
谢谢你, 雷。
【问题讨论】:
标签: sql-server
SQL Server 还支持标准信息架构视图。使用它们可能会更好,因为如果您需要进行迁移,此查询也应该可以跨不同的数据库引擎工作:
SELECT * FROM INFORMATION_SCHEMA.tables where table_name LIKE '%Settings%'
【讨论】:
你想要的表是 sys.objects
SELECT *
FROM sys.objects
【讨论】:
包含您查找的信息的表称为 sysobjects。这是您所描述内容的查询:
SELECT * FROM sysobjects WHERE xtype = 'U' AND NAME LIKE '%setting%'
(U是用户表的类型)
【讨论】:
对于 Sql Server 2005
SELECT * FROM sys.objects where type in ('U') and name like '%setting%'
【讨论】: