首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >系统视图完全被忽略?

问系统视图完全被忽略?
EN

Database Administration用户
提问于 2017-08-18 14:09:24
回答 1查看 113关注 0票数 2

为什么完全的资格似乎被忽视了?

在这里,我USE我正在查询的数据库,并得到预期的结果:

代码语言:javascript
复制
use [_DBMgt];
GO
select
    s.[name] as [Schema],
    o.[name] as [Table]
    from [_DBMgt].[sys].[objects] o
    inner join [_DBMgt].[sys].[schemas] s
        on s.[schema_id] = o.[schema_id]
    where OBJECTPROPERTY(o.[object_id], N'IsUserTable') = 1
    order by s.[name], o.[name]
;
GO

Schema Table
------ ---------------
dbo    TableAbbrLookup

(1 row(s) affected)

在这里,我没有USE我想查询的数据库,但是完全限定了数据库引用;但是,我没有得到预期的结果。

代码语言:javascript
复制
use [master];
GO
select
    s.[name] as [Schema],
    o.[name] as [Table]
    from [_DBMgt].[sys].[objects] o
    inner join [_DBMgt].[sys].[schemas] s
        on s.[schema_id] = o.[schema_id]
    where OBJECTPROPERTY(o.[object_id], N'IsUserTable') = 1
    order by s.[name], o.[name]
;
GO

Schema Table
------ ----------------------
sys    sqlagent_job_history
sys    sqlagent_jobsteps
sys    sqlagent_jobsteps_logs

(3 row(s) affected)

要么我期望错误的事情(可能),要么我发现了一个错误(不太可能)。

我遗漏了什么?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2017-08-18 14:23:21

来自与OBJECTPROPERTYOBJECTPROPERTY有关的文档:

注:数据库引擎假定object_id位于当前数据库上下文中。引用另一个数据库中的object_id的查询将返回空或不正确的结果。例如,在下面的查询中,当前数据库上下文是主数据库。数据库引擎将尝试返回该数据库中指定的object_id的属性值,而不是查询中指定的数据库。查询返回不正确的结果,因为视图vEmployee不在主数据库中。

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

https://dba.stackexchange.com/questions/183837

复制
相关文章

相似问题

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