【发布时间】:2014-04-03 06:20:19
【问题描述】:
上下文:我有一个名为 DB4 的 SQL Server 数据库引擎,它每 5 小时通过 SQL Server 代理从另一个名为 DB5 的数据库引擎更新其所有数据库。我无权访问 DB5,但有人告诉我 DB5 也在从其他地方更新。
问题:问题是有时两个数据库引擎会同时更新它们的数据库,所以 DB4 不能完全更新。
问题:有什么方法可以检测 DB5 是否正在更新?然后我可以编写 SQL Server 代理作业,比如如果 DB5 没有更新则更新 DB4,否则什么也不做。
PS:许多代理作业处理 DB4 更新的方式。有人在工作中编写了许多脚本。基本上,脚本是这样的格式:
TRUNCATE Table_Name
INSERT INTO Table_Name
SELECT field_name1,field_name2 ......
FROM DB5.database_name.table_Name
【问题讨论】:
-
DB5 更新有什么特别之处吗,例如,它以特定用户的身份连接?
-
“更新”是什么意思?复制?
-
@Angst 我不知道,我无权访问 DB5。关于 DB5,我只知道它是一个交换数据库引擎,DB5 从其他地方更新,然后一些数据库引擎(如 DB4)会从中提取数据。
-
好吧,如果您有权访问 DB4,并且您知道当 DB5 进行更新时,它会使用某个用户来执行此操作,您可以检查 DB4 中该用户是否存在会话.
-
@usr 有人在 SQL Server 代理中编写了许多脚本。基本上,它只是 TRUNCATE 一个表,然后从 DB5 SELECT 并 INSERT 到表中。通过这种方式,DB4 更新了它的所有数据库。
标签: sql sql-server database sql-server-agent