首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在查询sql server数据库时获取sysobject的架构名称

如何在查询sql server数据库时获取sysobject的架构名称
EN

Stack Overflow用户
提问于 2014-05-24 01:10:31
回答 2查看 2K关注 0票数 1

我需要查询数据库中所有存储过程的名称和架构名称。

这是我到目前为止得到的内容,但我不知道如何获得架构名称。

查询sysobjects表时,架构名称的字段名是什么?

代码语言:javascript
复制
  private DataTable GetProcedures()
    {
        var table = new DataTable();

        string sql = "";

        sql = "select name,'' as type ";
        sql += " From sysobjects ";
        sql += " where type = 'P' ";
        sql += " and name not like 'dt_%'  ";

        sql += " order by name asc";

        using (SqlConnection conn = new SqlConnection(cs))
        {
            conn.Open();

            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.Connection = conn;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sql;

                using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                {

                    da.Fill(table);
                }
            }
        }
        return table;
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-24 01:17:19

也许这能帮你:

代码语言:javascript
复制
SELECT name AS object_name 
  ,SCHEMA_NAME(schema_id) AS schema_name
  ,type_desc
  ,create_date
  ,modify_date
FROM sys.objects
WHERE type = 'P'
ORDER BY name asc;
票数 0
EN

Stack Overflow用户

发布于 2014-05-24 01:13:17

使用sys.objects表连接到sys.schemas表,如下所示:

代码语言:javascript
复制
SELECT schemas.name, objects.name
FROM sys.objects
JOIN sys.schemas ON schemas.schema_id = objects.schema_id

因此,要查找所有存储过程(以查询为开始),如下所示:

代码语言:javascript
复制
SELECT schemas.name, objects.name
FROM sys.objects
JOIN sys.schemas ON schemas.schema_id = objects.schema_id
WHERE type = 'P'
AND objects.name NOT LIKE 'dt_%'

作为附加信息,您不应该再使用sysobjects,因为它已经被sys.objects替换了,其他sys*表也是如此。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23840318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档