原文
-- 整了一上午終於把樓主這個問題給整好了!
-- 比如說:在本地 test 資料庫 與區域網 245 的 hlldb資料庫中 都有一張結構如下的表 t
create table t(
id int,
name varchar(20)
);-- 現在假設當 本地 test 資料庫 中的 表 t中插入記錄行的同時向 區域網 245 的 hlldb資料庫 的表t 插入相同的記錄行,
-- 實現如下(用觸發器實現)
-- step 1 :建立鏈結伺服器、及其登入授權(在本地 test資料庫執行)
--建立鏈結伺服器
-- 示例**:
-- exec sp_addlinkedserver 'itsv ', ' ', 'sqloledb ', '遠端伺服器名或ip位址 '
-- exec sp_addlinkedsrvlogin 'itsv ', 'false ',null, '使用者名稱 ', '密碼 '
-- 實際操作**:
exec sp_addlinkedserver 'it245 ', ' ', 'sqloledb ', '192.168.1.245'
exec sp_addlinkedsrvlogin 'it245 ', 'false ',null, 'sa', 'go2wan@szty'
-- step 2 :建立觸發器(在本地 test資料庫執行)
create trigger tr_in_t on [dbo].[t]
for insert
asbegin
set nocount on
set xact_abort on
declare @id int, @name varchar(20);
select @id=id, @name=name from inserted;
insert into it245.hlldb.dbo.t(id,name) values(@id,@name);
endinsert into t(id,name) values(1,'luoyoumou1');
-- 如果出現這樣的錯誤:(請參考以下五個**的文件)
鏈結伺服器"it245"的 ole db 訪問介面 "sqlncli" 返回了訊息 "該夥伴事務管理器已經禁止了它對遠端/網路事務的支援。"。
-- --
-- --
-- insert into t(id,name) values(1,'luoyoumou1');
select * from t;
select * from it245.hlldb.dbo.t;
如上參考,設計出跨域觸發器
1)exec sp_addlinkedserver 'pc237_3 ', ' ', 'sqloledb ', '192.168.161.237'
exec sp_addlinkedsrvlogin 'pc237_3 ', 'false ',null, 'sa', 'infact'
2)alter trigger [servercross_trigger]
on [dbo].[a]
for insert
asbegin
declare @a tinyint, @b int,@c nvarchar(50);
select @a=a, @b=b ,@c=c from inserted;
insert into pc237_3.laocaotestdb.dbo.a_servertest(a,b,c) values(@a,@b,@c)
end------------------------------執行某insert語句後,出現下面問題-------------------------------------
——【伺服器上的msdtc不可用】
——解決方法:啟動 distributed transaction coordinator 服務。若該服務不讓啟動,提示與廠商聯絡,進行如下操作
解決辦法:
把 c:/windows/system32/dtclog 這個目錄重新命名(如果有),然後重新建立該目錄。
在命令列下: msdtc -resetlog
---------------------------------再次執行時,出現下面問題---------------
——【無法執行該操作,因為鏈結伺服器 "pc237_3" 的 ole db 訪問介面 "sqlncli" 無法啟動分布式事務。】
解決方法:
參考檔案過於複雜,待以後執行。
資料庫 mysql 跨庫訪問 資料庫跨庫訪問問題
sql server中的所有權鏈及其問題 沒有多少朋友對所有權鏈真的理解的。我自己有時候經常回過來看看這些資料,覺得還是很有意思的。下面的內容摘自微軟文件,介紹得比較好 簡而言之 1.如果在同乙個資料庫中,只要兩個物件的所有者是一樣的,那麼他們之間的訪問是不檢查訪問者身份的。例如乙個檢視和乙個表是屬...
在論壇中出現的各種疑難問題 資料庫儲存配置
首先,日誌和資料,最好分到不同的物理磁碟上,可以吧資料io和日誌io,分到不同的硬碟上,提高io效率 然後,資料,也要分到不同的物理磁碟上,這樣可以通過並行的io,提高讀取資料的效率。而tempdb,可以新增多個檔案,主要是當在tempdb中建立大量臨時表的時候,減少閂鎖的爭用。每個檔案的大小要相同...
資料庫跨庫訪問問題
sql server中的所有權鏈及其問題 沒有多少朋友對所有權鏈真的理解的。我自己有時候經常回過來看看這些資料,覺得還是很有意思的。下面的內容摘自微軟文件,介紹得比較好 簡而言之 1.如果在同乙個資料庫中,只要兩個物件的所有者是一樣的,那麼他們之間的訪問是不檢查訪問者身份的。例如乙個檢視和乙個表是屬...