iT邦幫忙

1

SQL Server 大神請進 ~ TRIGGER 不同主機同步資料問題

  • 分享至 

  • twitterImage

請問SQL大神
我要從A主機的Atable
同步到
B主機的Btable
A.Btable 格式一模一樣

已經做好同步功能,手動執行很正常
後來在做TRIGGER
DBLINK的語法無法寫入CREATE TRIGGER內
語法如下

EXEC   sp_addlinkedserver     'SerName','','SQLOLEDB','BDName'
GO
EXEC   sp_addlinkedsrvlogin   'SerName','false',null,'SqlID','SqlPW'
GO

想問一下,上方兩段語法想寫入TRIGGER,可以寫在哪?

USE MASTER
GO
EXEC   sp_addlinkedserver     'SerName','','SQLOLEDB','BDName'
GO
EXEC   sp_addlinkedsrvlogin   'SerName','false',null,'SqlID','SqlPW'
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
USE [A]
GO
CREATE TRIGGER tr_Atable
   ON  [dbo].[Atable] 
   AFTER INSERT
AS 
BEGIN
	SET NOCOUNT ON;
	INSERT INTO [B].[dbo].[Btable]
	.
	.
	.
END
GO
EXEC   sp_dropserver   'SerName','droplogins'

非常感謝~

edison02 iT邦新手 4 級 ‧ 2020-09-25 14:00:33 檢舉
你link server加入又砍掉的目的是什麼??
阿偉 iT邦新手 2 級 ‧ 2020-09-25 14:05:06 檢舉
我希望每次A主機 有新增資料才連線B主機,做INSERT
所以才設計INSERT完又把連線關閉,下次有資料再連線
還是這是不必要的動作?
edison02 iT邦新手 4 級 ‧ 2020-09-25 14:20:51 檢舉
你是固定連線操作的東西,多做這一段是多此一舉.權限在link server連線帳號那邊控管就好.
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
allenlwh
iT邦高手 1 級 ‧ 2020-09-25 11:23:12
最佳解答
CREATE TRIGGER tr_Name
   ON  [B主機].[DBName]..[Btable]
   AFTER INSERT,DELETE,UPDATE
AS 
BEGIN
.
.
.
END
看更多先前的回應...收起先前的回應...
阿偉 iT邦新手 2 級 ‧ 2020-09-25 11:51:53 檢舉

請問B主機帳密要寫在哪?

allenlwh iT邦高手 1 級 ‧ 2020-09-25 11:57:03 檢舉
阿偉 iT邦新手 2 級 ‧ 2020-09-25 13:46:19 檢舉

抱歉
我目前的問題就是dblink不知道該寫在TRIGGER內的哪裡?

USE MASTER
GO
EXEC   sp_addlinkedserver     'SerName','','SQLOLEDB','BDName'
GO
EXEC   sp_addlinkedsrvlogin   'SerName','false',null,'SqlID','SqlPW'
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
USE [A]
GO
CREATE TRIGGER tr_Atable
   ON  [dbo].[Atable] 
   AFTER INSERT
AS 
BEGIN
	SET NOCOUNT ON;
	INSERT INTO [B].[dbo].[Btable]
	.
	.
	.
END
GO
EXEC   sp_dropserver   'SerName','droplogins'

這樣寫TRIGGER建立好後,不會連線B主機

serverlink並不是在CREATE TRIGGER前建立的啦......而是要預先在系統上以SA或對等權限身份建立好,TRIGGER才能隨時動用

阿偉 iT邦新手 2 級 ‧ 2020-09-25 14:15:11 檢舉

原來如此,想問一下,如果A主機重新開機
serverlink還會再嗎?
還是要重連一次?

因為對方是免費版SQL Server,應該是沒有排成可以自動跑sp來做dblink

allenlwh iT邦高手 1 級 ‧ 2020-09-25 15:20:14 檢舉

dblink 建立以後,就不會斷了

阿偉 iT邦新手 2 級 ‧ 2020-09-25 16:15:04 檢舉

可以了,謝謝!

我要發表回答

立即登入回答