【问题标题】:What is the sql to query SqlServer system databases to find an DB object?查询Sql Server系统数据库查找DB对象的sql是什么?
【发布时间】:2008-11-24 19:36:48
【问题描述】:

我有一个包含许多表和存储过程的大型数据库,我想查找并查看,例如,是否有一个名称包含“设置”的表。我对 SqlServer 的系统数据库(如 master、msdb 等)不太熟悉,我知道有一种方法可以查询其中一个数据库以获取我需要的内容,有人知道该怎么做吗?

谢谢你, 雷。

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    SQL Server 还支持标准信息架构视图。使用它们可能会更好,因为如果您需要进行迁移,此查询也应该可以跨不同的数据库引擎工作:

    SELECT * FROM INFORMATION_SCHEMA.tables where table_name LIKE '%Settings%'
    

    【讨论】:

      【解决方案2】:

      你想要的表是 sys.objects

      SELECT * 
      FROM sys.objects
      

      【讨论】:

        【解决方案3】:

        包含您查找的信息的表称为 sysobjects。这是您所描述内容的查询:

        SELECT * FROM sysobjects WHERE xtype = 'U' AND NAME LIKE '%setting%'
        

        (U是用户表的类型)

        【讨论】:

        • sysobjects 现在已被 MS 弃用。您应该改用 sys.objects。
        【解决方案4】:

        对于 Sql Server 2005

        SELECT * FROM sys.objects where type in ('U') and name like '%setting%'

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-09-15
          • 1970-01-01
          • 2011-12-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多