SQL server触发器、存储过程操作远程数据库插入数据,解决服务器已存在的问题
2015-07-24 15:57
555 查看
最近弄了一个小项目,也不是很复杂,需要将一个数据库的一些数据备份到另外一个库,不是本地,可能是网络上其他的数据库,想了一下,用了存储过程和触发器。也不是很复杂,首先我需要操作远程数据库,于是写了一个存储过程:
然后这样的结果第一次执行成功了,但是第二次却提示 ims_srv_lnk已存在,不能执行了。后面想来想就把代码里面的连接服务器那一块删除了,结果就OK了。
来源:http://bluesnowsoft.com
CREATE PROCEDURE sendInfoToRemoteDb @CardNo varchar(50), @CardStyle varchar(20), @userId varchar(20), @UserName varchar(30), @passDate datetime, @inOut int AS BEGIN --exec sp_addlinkedserver <span style="white-space:pre"> </span>--@server='ims_srv_lnk', <span style="white-space:pre"> </span>--@srvproduct='', <span style="white-space:pre"> </span>--@provider='MSDASQL', <span style="white-space:pre"> </span>--@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了。
来源:http://bluesnowsoft.com
相关文章推荐
- MySQL存储过程
- 远程控制技术的应用
- ASP程序与SQL存储过程结合使用详解
- VBScript 打造自己的远程CMDShell附使用教程
- Oracle存储过程之数据库中获取数据实例
- MSSQL自身存储过程的一个注入漏洞
- 推荐Sql server一些常见性能问题的解决方法
- SQLServer 2005 列所有存储过程的语句
- SQLServer 2008中的代码安全(一) 存储过程加密与安全上下文
- SQL Server存储过程的基础说明
- sqlserver存储过程语法详解
- MSSQL事务的存储过程
- SQL Server 存储过程解析
- sql server动态存储过程按日期保存数据示例
- 在登录触发器错误情况下连接SQL Server的方法
- SQLserver 数据库危险存储过程删除与恢复方法
- SQL Server存储过程中使用表值作为输入参数示例
- 你真的了解触发器么 数据实时同步更新问题剖析
- SQL Server 2000中的触发器使用
- zabbix告警(一)---添加邮件报警