2016-02-08 86 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

你可能有兩個你'NurseTbl'和'inserted'表中的列'NurseWard'。在具有所需值的表格前面加上select。 –

+0

無論如何,你應該總是引用每一列與別名。它清楚地表明瞭價值來源於哪個表格,並避免了像這樣的問題。 –

回答

3

這看起來像觸發器中的inserted tableinserted表具有與原始表相同的列名稱。來自鏈接的文章:

插入的表在INSERT 和UPDATE語句中存儲受影響的行的副本。在插入或更新事務期間,新插入的表和觸發器表中都會添加新的 行。插入表中的 行是觸發器 表中新行的副本。

查詢對NurseTblinserted表都一個別名,inner join使用別名,但select沒有。您將需要一個別名在select添加到NurseWard列:

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