我在 SQL Server 中看到过类似的情况(针对 master 数据库运行此查询):
select * from tempdb..sysobjects
这似乎返回与以下内容完全相同的结果:
select * from tempdb.sys.objects
我发现双点可以用作 a way to omit the schema name但我没有看到这里遗漏了任何内容,按照这个逻辑,那么 tempdb..objects
将是有效的,而事实并非如此)。
最佳答案
tempdb..objects
将被解释为 tempdb.dbo.objects
两者都是两个不同的系统 View
sys.objects
Contains a row for each user-defined, schema-scoped object that is created within a database, including natively compiled scalar user-defined function.
sys.sysobjects
Contains one row for each object that is created within a database, such as a constraint, default, log, rule, and stored procedure
注意:此 SQL Server 2000 系统表作为向后兼容的 View 包含在内。我们建议您改用当前的 SQL Server 系统 View 。若要查找等效的系统 View 或多个 View ,请参阅将系统表映射到系统 View (Transact-SQL)。 Microsoft SQL Server 的 future 版本将删除此功能。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。
关于sql-server - .. 和 . 之间的语法差异在 SQL Server 中的 sysobjects 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37000436/