SQL Server - 返回 sysobjects 的架构

标签 sql sql-server tsql

在 sysobjects 上进行选择时如何获取架构?

我正在修改一个名为 SearchObjectsForText 的存储过程,它仅返回名称,但我还想包含架构。

现在它正在做类似的事情:

SELECT DISTINCT name
FROM sysobjects

我想知道需要连接哪些表才能返回每个“名称”的 SCHEME。

最佳答案

如果您指的是 SQL Server 2005 或更高版本,请使用 sys.objects 而不是 sysobjects:

SELECT  sys.objects.name, sys.schemas.name AS schema_name
FROM    sys.objects 
INNER JOIN sys.schemas ON sys.objects.schema_id = sys.schemas.schema_id

2005 年引入了模式。到 2000 年,用户等于模式。 SQL Server 2000 的相同查询:

SELECT  sysusers.name AS OwnerName, sysobjects.name
FROM sysobjects
INNER JOIN sysusers ON sysobjects.uid = sysusers.uid

关于SQL Server - 返回 sysobjects 的架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/917431/

相关文章:

mysql - 顶级 MySQL 统计信息

sql-server - 如何使用 SMO 使 SQL Server 数据库退出 "restoring"模式

sql-server - 返回存储过程的子集

tsql - INFORMATION_SCHEMA.VIEWS 中的 View_Definition 限制为 4000 个字符

mysql - SQL 使用 COUNT() 和 LEFT JOIN 合并两个或三个表

mysql - 外键引用同一张表中的主键 Mysql

php - 查询未插入数据没有错误

c# - 为什么要避免动态 SQL 查询?有什么建议可以删除那里的坏部分并使用这些吗?

tsql - char(10)在动态t-sql字符串中做什么?

sql - 使存储过程原子化而无需考虑外部事务