SQL Server 2008 R2:错误

SQL Server 2008 R2:错误
insert into [ULGP_CARES TEST].[dbo].[person](date_of_birth)

select [Dtest].[dbo].[ContactBase].[BirthDate] 
from [Dtest].[dbo].[ContactBase]
where
[Dtest].[dbo].[ContactBase].[FirstName]=[ULGP_CARES TEST].[dbo].[person].[first_name]

and
[Dtest].[dbo].[ContactBase].[MiddleName]=[ULGP_CARES TEST].[dbo].[person].  [middle_name] 
and
[Dtest].[dbo].[ContactBase].[LastName]=[ULGP_CARES TEST].[dbo].[person].[last_name]

尝试运行上述查询时,我收到以下错误“消息 4104,级别 16,状态 1,第 6 行,无法绑定多部分标识符“ULGP_CARES TEST.dbo.person.first_name”。消息 4104,级别 16,状态 1,第 9 行,无法绑定多部分标识符“ULGP_CARES TEST.dbo.person.middle_name”。消息 4104,级别 16,状态 1,第 11 行,无法绑定多部分标识符“ULGP_CARES TEST.dbo.person.last_name”。

如何解决这个问题?

答案1

尝试这个:

insert into [ULGP_CARES TEST].[dbo].[person](date_of_birth)
select [Dtest].[dbo].[ContactBase].[BirthDate] 
from [Dtest].[dbo].[ContactBase]
join [ULGP_CARES TEST].[dbo].[person] 
on [ContactBase].[FirstName]=[person].[first_name]
and [ContactBase].[MiddleName]=[person].[middle_name] 
and [ContactBase].[LastName]=[person].[last_name]

如果不在 JOIN 子句中包含 person 表,SQL 就不会意识到它的存在。

如果这没有帮助,您还应该检查以下内容:

您确定名为“ULGP_CARES TEST”的数据库存在吗?可能是拼写或大小写不同,或者空格字符实际上是下划线,反之亦然。同一个数据库名称中同时出现下划线和空格的情况并不常见。

您确定名为“person”的表存在于名为“ULGP_CARES TEST”的数据库中吗?也许它的拼写或大小写不同,或者它不是“dbo”架构的一部分。

您确定“first_name”、“middle_name”和“last_name”列存在于名为“ULGP_CARES TEST”的数据库的名为“person”的表中吗?可能是拼写或大小写不同。

相关内容