SQL:从不同的数据库中获取实时数据

时间:2015-08-21 08:07:49

标签: sql sql-server

我希望在更改内容时将数据库1中的数据插入到database2中。就像一个触发器但事情是我不允许在database1中创建一个触发器。

我基本上需要将数据库中的某些数据插入到另一个数据库中。

任何建议都会很棒! 感谢名单

3 个答案:

答案 0 :(得分:0)

合并运营商怎么样?

当更改内容时,合并运算符将从源表中将更改提交到目标表中。

由于你不能使用触发器,这不是一个实时的过程,但是使用像SQL Agent这样的进程调度程序,你可以每10秒运行一次,具体取决于你的表大小。

https://msdn.microsoft.com/en-us/library/bb510625.aspx

当您的来源来自多个表时,您可以使用CTE执行此操作:

With TableSources As
(
    Select id,Column1, Column2 from table1
    UNION 
    Select id,Colum1,Column2 from table2
)
MERGE INTO TargetTable
USING TableSources ON TargetTable.id=TableSources.id
WHEN NOT MATCHED BY Target
Insert(Column1,Column2) Values(Column1,Column2)
WHEN NOT MATCHED BY Source
Delete
WHEN MATCHED
Update Set Column1=TableSources.Column1, Column2=TableSources.Column2
;

答案 1 :(得分:0)

你可以创建一个程序来做到这一点,有很多方法,但我认为这是一个简单明了的方法。 例如,如果使用SQL Server,则可以创建连接到两个数据库的C#代码,并检查第一个数据中的数据,然后将其发送到第二个数据库。

例如: 您可以为要检查它们的第一个DB表创建一个触发器,然后您可以创建一个Web服务来检查触发器是否触发,它将从第一个数据库获取数据并将其发送到第二个数据库,这样会更好增强,您可以更改代码以执行任何操作而无需从数据库端进行任何更改

答案 2 :(得分:0)

MS SQL Server Replication

我认为适合你的是Transactional Replication 事务复制是异步的,但接近实时

相关问题