存储过程问题指出过程:[dbo]。[GetInfo]包含对对象的未解决的引用

时间:2018-07-31 12:38:06

标签: sql sql-server

伙计,我真的需要您的帮助。问题是在Visual Studio中,我正在尝试创建具有两个表的内部联接的存储过程:КатегорииЗатрат(英文表示Category)和Расходы(英文表示Expenses),以确保我可以显示Category的名称而不是它的编号。

但是,我得到一个错误

  

过程:[dbo]。[GetInfo]包含对对象的未解析引用。该对象不存在或引用不明确,因为它可以引用以下任何对象:[dbo]。[КатегорииЗатрат]。[c] :: [КатегорииЗатратId]或[dbo]。[Расходы]。[c] ::: [КатегорииЗатратId]`。

我正在使用的代码:

CREATE PROCEDURE [dbo].[GetInfo]
AS
BEGIN
    SELECT 
        [Период],
        [Стоимость],
        [КатегорииЗатратId],
        [Комментарий]
    FROM 
        [dbo].[Расходы] AS с 
    INNER JOIN
        [dbo].[КатегорииЗатрат] AS cat ON c.КатегорииЗатратId = cat.Id
END

2 个答案:

答案 0 :(得分:2)

您需要指定要从哪个表中选择[КатегорииЗатратId]。例如

Create PROCEDURE [dbo].[GetInfo]

AS
Begin
    SELECT 
    [Период],
    [Стоимость],
    c.[КатегорииЗатратId],
    [Комментарий]
    FROM [dbo].[Расходы] as с inner join [dbo].[КатегорииЗатрат] as cat on 
    c.КатегорииЗатратId=cat.Id
End

答案 1 :(得分:1)

您的选择包含一个字段引用,SQL Server无法解析该字段引用,因为该字段存在于您选择的多个表中,因此它不知道您的意思。

将表前缀添加到选择列表中的每个字段。