zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    python爬虫--requests模块
    相关基础概念
    python--用python操作Git
    celery异步,延时任务, 周期任务
    Ansible剧本中的角色—playbook中的roles
    Ansible中的剧本 ansible--playbook
    ansible模块总结2-- file, fetch, yum, pip, service, cron, user, group
    Ansible--安装,命令格式, ssh, command, shell, script, copy
    python--openpyxl模块使用, 对excel表格的操作
    Git使用02--branch分支, tag版本, 忽略文件 .gitingore
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7101816.html
Copyright © 2011-2022 走看看