当我运行这个查询
SELECT CustomerId FROM Stocks.dbo.Suppliers
它给我这个错误.无效的列名称“CustomerId”.此错误是有效的,因为“供应商”表中没有列CustomerId;但是当我在子查询中使用相同的查询时,它不会给出任何错误,例如.
SELECT * FROM SomeOtherDb.dbo.Customer WHERE CustomerId In( SELECT CustomerId FROM Stocks.dbo.Suppliers)
这里我期待同样的错误“无效的列名称”,但查询运行没有任何错误.
完全限定名称只是惯例,dbs都在同一台服务器上.
CustomerId确实存在于SomeOtherDb.dbo.Customer表中,但不存在于子查询中.
为什么是这样的行为?这是什么与子查询?
谢谢.