如何通过SQL Server数据库触发器、存储过程操作远程数据库插入数据解决服务器存在的问题
沉沙 2018-05-09 来源 : 阅读 1614 评论 0

摘要:将一个数据库的一些数据备份到网络上的数据库,需要使用存储过程和触发器。本文主要讲解如何通过SQL Server数据库触发器、存储过程操作远程数据库插入数据解决服务器存在的问题。

如果将一个数据库的一些数据备份到另外一个库,不是本地,而是网络上其他的数据库,需要使用存储过程和触发器。存储过程:

CREATE PROCEDURE sendInfoToRemoteDb
@CardNo varchar(50),
@CardStyle varchar(20),
@userId varchar(20),
@UserName varchar(30),
@passDate datetime,
@inOut intASBEGIN
--exec sp_addlinkedserver --@server='ims_srv_lnk', --@srvproduct='', --@provider='MSDASQL', --@provstr='Driver={SQL SERVER};SERVER=xxxx.com;UID=xxx;PWD=xxx;Database=xxx'
insert into ims_srv_lnk.IMSDBBAK.dbo.tb_record(cardNo,cardStyle,userId,userName,passDate,inOut)
 values(@CardNo,@CardStyle,@userId,@UserName,@passDate,@inOut)
 END
 GO

其实就是操作远程的数据库。插入一下数据,然后这边本地数据库写了一个触发器:

create trigger tgr_passrecord_insert  on PassCheckRecord   
for insert --插入触发  
 as  
 --定义变量   
 declare    
    @CardNo varchar(50),
@CardStyle varchar(20),
@userId varchar(20),
@UserName varchar(30),
@passDate datetime,
@inOut int
  --在inserted表中查询已经插入记录信息  select @CardNo = CardNo, @CardStyle = CardStyle,@userId=userId ,
@UserName=UserName,@passDate=passDate, @inOut=inOut
from inserted;set @CardNo = @CardNo; set @CardStyle = @CardStyle;set @userId = @userId;set @UserName = @UserName;set @passDate = @passDate; set @inOut = @inOut;  exec [dbo].[sendInfoToRemoteDb]
   @CardNo = @CardNo,   
   @CardStyle = @CardStyle,  
   @userId = @userId,
   @UserName = @UserName,
   @passDate = @passDate,
   @inOut = @inOut
print '发送信息成功!';

然后这样的结果第一次执行成功了,但是第二次却提示 ims_srv_lnk已存在,不能执行了。后面想来想就把代码里面的连接服务器那一块删除了,结果就OK了。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注SQL Server频道!


本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 1
看完这篇文章有何感觉?已经有1人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程