如何从不同模式的表中查看记录?
Posted
技术标签:
【中文标题】如何从不同模式的表中查看记录?【英文标题】:How do I view records from a table in a different schema? 【发布时间】:2021-04-17 06:01:43 【问题描述】:除了使用链接服务器之外,我如何查看来自不同架构的表中的记录?
所以如果我在 [eg].[info] 中有一个表,而在 [ie].[info] 中有另一个表,我该如何将它们连接在一起?也就是说,一个模式是 [eg],另一个是模式 [ie]。
【问题讨论】:
不要使用标准的语法缩写作为名称。或者,如果您的目标符合语言标准,请正确使用它们。您只是以这种方式使用它们来增加混乱。链接的服务器和模式名称没有直接关系 - 这是一个问题吗?如果您需要引用表,最佳做法是始终使用 2 部分名称 - [schema].[table]。最佳做法是总是给每个表一个简短(但不神秘)的别名,然后在引用每一列时使用该别名。 【参考方案1】:在 SQL Server 2018 及更高版本中,它已被弃用。错误我得到的三部分名称是...此版本的 SQL Server 不支持。
【讨论】:
【参考方案2】:您需要使用AS
为表起别名(无论如何您都应该这样做):
FROM eg.info AS info1
JOIN ie.info AS info2
【讨论】:
别名是个好主意,但 SQL Server 不支持 ANSI SQLschema.table.column
语法,例如eg.info.id = ie.info.id
?
@jarlh 见here,它已被弃用,尽管我认为它仍然有效:“三部分和四部分列引用。”
问题是除非使用链接服务器,否则无法从另一个模式中的一个模式读取表。是的,这很奇怪。所以,我想知道是否有替代方案。
什么,这根本不是真的,只是使用两部分表名和别名
你是对的。现在已弃用。我以为我在想象一些事情。我使用了三部分名称并收到以下错误。 ...此版本的 SQL Server 不支持。以上是关于如何从不同模式的表中查看记录?的主要内容,如果未能解决你的问题,请参考以下文章