2016-02-08 7 views
0

Я пытаюсь сделать соединение между двумя таблицами, но я получаю эту ошибкуSQL Server 2008 - Неоднозначное имя столбца

Неоднозначное имя столбца «NurseWard»

Код:

select 
    @WardID = NurseWard 
from 
    dbo.NurseTbl as o 
inner join 
    inserted as i on o.NurseID = i.NurseID 
+5

Вы, наверное, есть столбец 'NurseWard' в обоих ваших' 'NurseTbl' и inserted' таблиц. Предисловие select с таблицей, которая имеет значение, которое вы хотите. –

+0

Вы всегда должны ссылаться на каждый столбец с псевдонимом. Это дает понять, из какой таблицы вытекает ценность, и позволяет избежать таких проблем. –

ответ

3

Это похоже на inserted table в триггере. Таблица inserted имеет те же имена столбцов, что и исходная таблица. Из связанного товара:

Вставленная таблица хранит копии затронутых строк во время INSERT и операторов UPDATE. Во время транзакции вставки или обновления новые строки добавляются как в вставленную таблицу, так и в таблицу триггеров. Строки в вставленной таблице являются копиями новых строк в триггере .

Запрос имеет псевдоним на обеих таблицах NurseTbl и inserted и inner join использует псевдонимы, но select не делает. Вам нужно будет добавить псевдоним к NurseWard столбца в select:

select @WardID = o.NurseWard -- or i.NurseWard depending on what you need 
from dbo.NurseTbl as o 
inner join inserted as i on 
o.NurseID = i.NurseID 
Смежные вопросы