我的表别名无法在SQL Server 2012上运行。我启用了Intellisense。 它还没有用。
select * from department a
- 别名a
应该在我写的时候自动获取所有列:
select *
from department a
where a.departmentid = ..
当我写departmentid
时, a
列必须自动出现。
我的服务器中是否需要更改设置?
答案 0 :(得分:0)
您描述它的方式应该有效。这是基本的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中查询数据库,则此语法应该可以正常运行。
答案 1 :(得分:0)
考虑到Rajeev的查询不完整,这可能会或可能不会回答他的问题,但由于这是Google的第一个结果,我想我会指点人Andriy M's answer on "The multi-part identifier could not be bound"
您正在将隐式联接与显式联接混合使用。这是允许的,但你需要知道如何正确地做到这一点。
明确:包含Join关键字的联接。
问题是,显式连接(使用JOIN关键字实现的连接)优先于隐式连接('逗号'连接,其中连接条件在WHERE子句中指定)。 / p>