我有两台服务器ORACLE和SQL。
我在两台服务器上都有相同的数据库。
我想执行DML(插入,更新,删除)。
如何同时在两台服务器上执行相同的DML语句?
如果我在SQL Server中插入一个语句,那么应该在oracle数据库中更新相同的语句。
由于
答案 0 :(得分:0)
您可以使用MS SQL(和Oracle可能有类似的东西)来创建链接服务器。 请参考以下链接:
这基本上允许您像往常一样使用MS SQL,但是您可以通过此功能引用完全不同的系统。
假设您有以下简单表格方案:
CREATE TABLE Tbl
(
ID int,
SOMETHING NVARCHAR(100)
);
我不想调用两个不同的INSERT
语句,因此我会编写一个存储过程代表我进行插入。
让我们假设存储过程名称是SP_MyTest
并且有两个参数:@ ID,@ SOMETHING。我会使用一个事务,以确保我总是插入两个表。
但请记住 - 这种实现是同步的,这意味着:如果一个插入需要"永远"然后,除非你做一些补充,否则申请将持续该时间。
CREATE PROCEDURE SP_MyTest
@ID INT,
@SOMETHING NVARCHAR(100)
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRANSACTION TRN
INSERT INTO Tbl(ID,SOMETHING) VALUES(@ID,@SOMETHING);
INSERT INTO <LinkedServerName>.<LinkedServerDBName>.<schema>.<table>(ID,SOMETHING) VALUES(@ID, @SOMETHING);
COMMIT TRANSACTION TRN
END
之后,我会称之为:
EXEC SP_MyTest 1, 'Test1'
EXEC SP_MyTest 2, 'Test2'
EXEC SP_MyTest 3, 'Test3'