【问题标题】:Table alias not working on sql server 2012表别名在 sql server 2012 上不起作用
【发布时间】:2017-07-12 09:10:39
【问题描述】:

我的表别名在 SQL Server 2012 上不起作用。我已启用 Intellisense。 还是不行。

select * from department a -- 别名a 应该在我写的时候自动占用所有列:

select *
  from department a
 where a.departmentid = .. 

departmentid 列必须在我写a 时自动出现。

我需要在我的服务器中更改任何设置吗?

【问题讨论】:

  • 我不明白你在问什么?在表名后添加“a”将让您将来只使用“a”来引用该表...
  • 您好 Rajeev,您可以在您遇到错误的地方添加实际查询吗?你得到什么错误信息?您引用的语法看起来不错,应该可以工作。还请编辑您的问题,以消除您的问题的重复。
  • 考虑到不完整的性质,这可能与The multi-part identifier could not be bound重复

标签: sql-server-2012


【解决方案1】:

您描述它的方式应该有效。这是基本的 TSQL,不能在 SSMS 中禁用。

这里是一个使用表别名的例子;

USE AdventureWorks2008R2;
GO
SELECT c.CustomerID, s.Name
FROM Sales.Customer c -- using 'AS'
JOIN Sales.Store AS s -- Not using 'AS'
ON c.CustomerID = s.BusinessEntityID ;

AS 的使用不是强制性的。

如果您确实在 SQL Server 2012 上运行,假设您正在 SQL Server Management Studio 中查询您的数据库,那么这种语法肯定可以工作。

【讨论】:

  • 嗨 karel,谢谢你回答我的问题。这个语法不起作用,让我在这里发布这个问题。我认为我必须在 sql server 2012 中进行一些设置更改才能使其成为可能..但我不知道我到底要做什么...有人可以帮我解决这个问题吗...谢谢...
【解决方案2】:

考虑到 Rajeev 的查询不完整,这可能会或可能不会回答他的问题,但由于这是 Google 的第一个结果,我想我会向人们指出 Andriy M's answer on "The multi-part identifier could not be bound"

您将隐式连接与显式连接混合在一起。这是允许的,但你需要知道如何正确地做到这一点。

显式:涉及 Join 关键字的连接。

问题是,显式连接(使用 JOIN 关键字实现的连接)优先于隐式连接(“逗号”连接,其中连接条件在 WHERE 子句中指定)。

【讨论】:

    猜你喜欢
    • 2014-07-03
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    相关资源
    最近更新 更多