如何从链接服务器视图插入到多个表?



我是sql的新手,希望任何人都可以帮助我解决这个问题。

我们有一个名为HR-Master的本地数据库和一个名为SPU的链接服务器 . 我们的本地数据库中有三个表,即EMPREMEMPEMPIC,还有一个从链接服务器创建的视图,称为EmployeepassView

电磁脉冲

ID,LASTNAME,FIRST NAME, MIDNAME,COMID,LASTCHANGED, PERMISSIONS, ALLOWEDPERMISSIONS,ASSET_GROUPID,TR_DBID,QUED,SEGMENTID -

雷蒙普

ID ,*JOBROLE,*NATIONALITY ,*PERMITAREAS,DEPT , *ISSUEDATE,*REFID,*TEAMINCHARGE 
*MAINROLE,*SUBROLE,*ROLENAME,*ROLEID, EXPIRYDATE

电磁脉冲

EMPID,OBJECT,TYPE ,*EMP_BLOB,*LASTCHANGED,ACCEPTANCETHRESHOLD, BIO_BODYPAR -

员工通行证视图

([COMID],[lastName],[Name_En],[PERTYPE],[REFID],[JobTitle],[Nationality],[PERMITAreas],[IssueDate],[ExpiryDate],[TeamInCharge],[MainRole] ,[SubRolE],[RoleName],[ROLEID],[Picture],[isDisable] ,[LastPersonPrint],[LastPrintDate],[NoOfTimesPrinted],[LastUpdated],

我想从我的视图中复制值并将其放在上面的三个表中,如下所示

INSERT dbo.emp ([LASTNAME],[COMID)],[LASTCHANGED])
INSERT dbo.rememp ([jobrole],[nationality)],[PERMITAREAS], [ISSUEDATE],[REFID],[TEAMINCHARGE], [MAINROLE],[SUBROLE],[ROLENAME],[ROLEID])
INSERT dbo.emppic ([LASTNAME],[SSNO)],[LASTCHANGED])
select ([LASTNAME],[COMID)],[LASTCHANGED],[jobrole],[nationality],[PERMITAREAS], [ISSUEDATE],[REFID],[TEAMINCHARGE], [MAINROLE],[SUBROLE],[ROLENAME],[ROLEID],[LASTNAME],[SSNO)],[LASTCHANGED])
from EmployeepassView as ET
where ET.COMID='1234'

使用上面的查询。如何在单个查询中执行此操作?请帮忙

您必须执行三个单独的插入操作:

如果我理解你关于插入ID的评论,我将假设EMPID来自dbo.emp表。 所以我会做以下几件事:

为存储过程编辑:

CREATE PROCEDURE InsertStuff @ID int
AS
INSERT dbo.emp ([ID],[LASTNAME],[COMID)],[LASTCHANGED])
select @ID,[LASTNAME],[COMID)],[LASTCHANGED] from EmployeepassView as ET
where ET.COMID='1234'
INSERT dbo.rememp 
SELECT (@ID,[jobrole],[nationality)],[PERMITAREAS], [ISSUEDATE],[REFID],[TEAMINCHARGE], [MAINROLE],[SUBROLE],[ROLENAME],[ROLEID])
select [jobrole],[nationality],[PERMITAREAS], [ISSUEDATE],[REFID],[TEAMINCHARGE], [MAINROLE],[SUBROLE],[ROLENAME],[ROLEID],[LASTNAME],[SSNO)],[LASTCHANGED]) from EmployeepassView as ET
where ET.COMID='1234'
INSERT dbo.emppic ([EMPID],[LASTNAME],[SSNO)],[LASTCHANGED])
select @ID, [LASTNAME],[COMID)],[LASTCHANGED] from EmployeepassView as ET
where ET.COMID='1234'

最新更新