Когда я запускаю этот запросПочему ошибка «Недопустимое имя столбца XYZ» в подзапросе; хотя имя столбца не в таблице подзапроса?
SELECT CustomerId FROM Stocks.dbo.Suppliers
Это дает мне эту ошибку. Недопустимое имя столбца «CustomerId». Эта ошибка действительна, поскольку в таблице «Поставщики» нет столбца CustomerId; но когда я использую тот же запрос в подзапросе, он не дает никакой ошибки.
SELECT *
FROM SomeOtherDb.dbo.Customer
WHERE CustomerId In(SELECT CustomerId
FROM Stocks.dbo.Suppliers)
Здесь я ожидаю ошибку «Недопустимое имя столбца», но запрос выполняется без ошибок.
Полностью квалифицированное имя - это просто соглашение, и обе стороны находятся на одном сервере.
CustomerId существует в SomeOtherDb.dbo.Customer таблице, но не в подзапросе.
Почему такое поведение? Это что-то с подзапросом?
Спасибо.
Приводит неверном столбца на меня в любой ситуации. Является ли полностью квалифицированное имя просто условным или связанным сервером? – Andrew
Полностью квалифицированное имя - это просто конвенция. Обе базы данных находятся на одном сервере. – Kashif