SQLserver 定时跨服务器多表联合更新


前言:实际业务中,需要实现定时的跨服务器的多表联合,然后更新一个表的值。

  1. 先在A服务器上建立链接服务器,如下
    这里写图片描述

此处一点要点击使用此安全上下文建立链接,否则到job运行那里可能会出现错误
然后右击测试链接,测试通过后,在建立存储过程

2.建立存储过程

USE [MSIS]
GO

/****** Object:  StoredProcedure [dbo].[UpdateMSISVisitNumber]    Script Date: 2018/5/16 13:55:30 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[UpdateMSISVisitNumber]
AS
    BEGIN
        --根据身份证号码更新 VisitNumber
        UPDATE  MSIS_Patient
        SET     MSIS_Patient.VisitNumber = D_Paient.PatientIdInDomain ,
                MSIS_Patient.VisitType = D_Paient.DomainId ,
                MSIS_Patient.Remark = GETDATE()
        FROM    [ip地址].EMPI.dbo.PatientInfo AS Patient
                INNER JOIN [ip地址].EMPI.dbo.DomainPatients AS D_Paient ON D_Paient.SeqNo = Patient.SeqNo
                INNER JOIN MSIS.dbo.Patient AS MSIS_Patient ON Patient.IDNumber = MSIS_Patient.National_ID
        WHERE   D_Paient.IsBase = 1
                AND LEN(REPLACE(MSIS_Patient.National_ID, '', ' ')) >= 18
                AND MSIS_Patient.National_ID <> '000000000000000000  '
				AND MSIS_Patient.VisitNumber IS NULL;
	

 --根据EMPI更新 VisitNumber  
        UPDATE  MSIS_Patient
        SET     MSIS_Patient.VisitNumber = D_Paient.PatientIdInDomain ,
                MSIS_Patient.VisitType = D_Paient.DomainId ,
                MSIS_Patient.Remark = GETDATE()
        FROM    [ip地址].EMPI.dbo.EmpiIds AS EmpiIds
                INNER JOIN [ip地址].EMPI.dbo.DomainPatients AS D_Paient ON D_Paient.EmpiId = EmpiIds.EmpiId
                INNER JOIN MSIS.dbo.Patient AS MSIS_Patient ON MSIS_Patient.EMP_ID = EmpiIds.EmpiDisplayId
        WHERE   D_Paient.IsBase = 1
                AND LEN(REPLACE(MSIS_Patient.National_ID, '', ' ')) < 18
                AND MSIS_Patient.EMP_ID IS NOT NULL
				AND MSIS_Patient.VisitNumber IS NULL; 
    END; 
GO


3.最后建立JOB,定时作业就可以了。注意建立完JOB后,先点击JOB名字右击,点击“作业开始步骤”,先测试下JOB 是否有错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值