SQL server触发器、存储过程操作远程数据库插入数据,解决服务器已存在的问题
近期弄了一个小项目,也不是非常复杂,须要将一个数据库的一些数据备份到另外一个库。不是本地,可能是网络上其它的数据库。想了一下,用了存储过程和触发器。
也不是非常复杂,首先我须要操作远程数据库,于是写了一个存储过程:
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已存在,不能运行了。后面想来想就把代码里面的连接server那一块删除了,结果就OK了。
来源:http://bluesnowsoft.com
SQL server触发器、存储过程操作远程数据库插入数据,解决服务器已存在的问题的更多相关文章
- 关于SQL Server 2005 的自动远程数据库备份
原文:(原创)关于SQL Server 2005 的自动远程数据库备份 由于项目需要,需要对目标服务器上的数据库每天进行备份并转移,查阅网上的一些帮助,结合自己的实际需要,写了这篇文章,希望对有同样需 ...
- SQL Server实时同步更新远程数据库遇到的问题
工作中遇到这样的情况,需要在更新表TableA(位于服务器ServerA 172.16.8.100中的库DatabaseA)同时更新TableB(位于服务器ServerB 172.16.8.101中的 ...
- (原创)关于SQL Server 2005 的自动远程数据库备份
由于项目需要,需要对目标服务器上的数据库每天进行备份并转移,查阅网上的一些帮助,结合自己的实际需要,写了这篇文章,希望对有同样需求的朋友有所帮助.目标服务器:192.168.1.197,备份服务器:1 ...
- sql server Delete误操作后如何恢复数据
声明:本文是根据别人的经验https://blog.csdn.net/dba_huangzj/article/details/8491327写的总结 说明:update和delete时没有加where ...
- 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连
在建立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连 sql server服务器sqlserver远程连接数据库防火墙在建立 ...
- SQL Server 2008 R2如何开启数据库的远程连接
SQL Server 2008 R2如何开启数据库的远程连接 SQL Server 2005以上版本默认是不允许远程连接的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,远 ...
- 查看SQL SERVER 加密存储过程,函数,触发器,视图
原文:查看SQL SERVER 加密存储过程,函数,触发器,视图 create PROCEDURE sp_decrypt(@objectname varchar(50))ASbeginset noc ...
- 在Sql Server触发器中判断操作是Insert还是Update还是Delete
在Sql Server触发器中判断操作是Insert还是Update还是Delete DECLARE @IsInsert bit, @IsUpdate bit, @IsDelete ...
- sql server系统存储过程大全
关键词:sql server系统存储过程,mssql系统存储过程 xp_cmdshell --*执行DOS各种命令,结果以文本行返回. xp_fixeddrives --*查询各磁盘/分区可用空间 x ...
随机推荐
- ASP.NET 之 Chart Control for .Net Framework
ps:曾经靠着这张图做了很多的图形报表
- P1968 美元汇率
题目背景 此处省略maxint+1个数 题目描述 在以后的若干天里戴维将学习美元与德国马克的汇率.编写程序帮助戴维何时应买或卖马克或美元,使他从100美元开始,最后能获得最高可能的价值. 输入输出格式 ...
- 元素属性的添加删除(原生js)
添加属性 odiv.setAttribute("title","hello div!"); odiv.setAttribute("class" ...
- 背包系列 hdu 3535 分组背包
题意: 有n组工作,现在有T分钟时间去做一些工作.每组工作里有m个工作,并且类型为s,s类型可以为0,1,2,分别表示至少选择该组工作的一项,至多选择该工作的一项,不限制选择.每个工作有ci,gi两个 ...
- 超经典~超全的jQuery插件大全
海量的jQuery插件帖,很经典,不知道什么时候开始流传,很早以前就收藏过,为了工作方便还是发了一份放在日志里面. 其中有些已经无法访问,或许是文件移除,或许是被封锁.大家分享的东西,没什么特别的可说 ...
- JS——indexOf replace search
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置 注释:indexOf() 方法对大小写敏感!如果要检索的字符串值没有出现,则该方法返回 -1. 语法:searchvalue, ...
- 搜索条件两个时间,通过php数组排序,保证select语句between时间 前小后大
//搜索条件两个时间,通过数组排序,保证select语句between时间 前小后大 $sort_array=[$_POST['clockDate1'],$_POST['clockDate2']]; ...
- tac
功能说明:反向显示文件内容. 参数选项: -b 在行前而非行尾加分隔标志. -r 将分隔标志视作正则表达式来解析. -s 使用指定字符串代替换行作为分隔标志. cat命令与tac命令的对比:
- CAD在网页中打印的图纸里面添加页眉及页脚
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- zoj 3314 CAPTCHA(纯模拟)
题目 有些人用深搜写的,当然我这弱弱的,只理解纯模拟... 纯模拟,第一次写了那么长的代码,我自己也是够坚韧不拔的,,,,必须留念啊!!! 注意,G包含C,E包含L,R包含P,(照图说O应该不包含C, ...