我正在尝试将数据插入到人员表中。平行地,我必须将插入的人员ID(标识列值)以及从另一个表的提供者复制到提供者。我尝试了下面的查询,但是我收到了一个错误。
多部分标识符" P.Provider_ID"无法受约束。
INSERT INTO PERSONS (
FirstName
,LastName
,Gender
,DOB
,EmailID
,OfficePhone
,Fax
,Mobile
,CertificationType_ID
--,License
--,StateCertificaionNo
--,StateCertificationExpiration
--,Comments
,ERTCleared
,IsAMR
,IsActive
,CreatedDate
,ModifiedDate
,IsCrewMember
,UserName
)
OUTPUT INSERTED.Person_ID
,P.Provider_ID
--,getdate()
--,getdate()
--,@appuserId
--,@appuserId
INTO @ProviderPersons(PersonID, ProviderID)
--00, CreatedDate, ModifiedDate, CreatedUser_ID, ModifiedUser_ID)
SELECT S.FirstName
,S.LastName
,S.Gender
,S.DOB
,S.EmailID
,S.OfficePhone
,S.Fax
,S.Mobile
,1 AS CertificationType_ID
,0 AS ERTCleared
,CASE
WHEN S.IsAMR = 'Yes'
THEN 1
ELSE 0
END AS IsAMR
,1 AS IsActive
,getdate() AS CreatedDate
,getdate() AS ModifiedDate
,1 AS IsCrewMember
,S.UserName
FROM [dbo].[STA_CrewMembers] S
INNER JOIN [dbo].[Providers] P ON P.BusinessUnitNumber = S.BusinessUnitNumber
OR P.NAME = S.PROVIDER
WHERE NOT EXISTS (
SELECT 1
FROM Persons
WHERE EmailID = S.EmailID
)
请建议我如何更好地处理这个问题。在此先感谢。
答案 0 :(得分:1)
使用
OUTPUT INSERTED.Person_ID
,INSERTED.Provider_ID
你不能使用表别名。由于表别名
,下面的例子不起作用declare @id table
(
id int
)
insert into t1
output n.id into @id
select top 10* from numbers n
select * from @id