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>[email protected]
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觸發器、存儲過程操作遠程數據庫插入數據,解決服務器已存在的問題