SQL Server语言 - Schedule Jobs将数据从一个数据库发送到另一个数据库



我计划在我的一个数据库上安排一个作业,它基本上每天下午5点运行。

数据库1:teststone表名:MyTable

数据库2:TestTwo

我的调度作业驻留在TestOne中,并插入到MyTable中,值为TestTwo.MyTable.

有没有类似的例子?这是否与从TestOne获得用户一样简单?对TestTwo.MyTable的访问权限?

谢谢你的建议。

用户当然需要对两个数据库都有足够的权限(从TestTwo.MyTable读/写到TestOne.MyTable)

你唯一需要的是正确的语法从一个数据库访问另一个。
如果作业驻留在TestOne中,则查询必须看起来像这样(从我的脑海中,未经测试):

use TestOne
insert into MyTable (Column1, Column2, ...)
select Column1, Column2, ...
from TestTwo.dbo.MyTable

访问其他数据库时,重要的是顺序:Database.Schema.Table
在我的例子(TestTwo.dbo.MyTable)中,我使用了默认的模式dbo -如果你的表有不同的模式,你需要在我的查询中改变它。

一些简单的场景(假设- i可以截断):

truncate table TestOne.dbo.MyTable
insert TestOne.dbo.MyTable(fieldslist)
select fieldslist from TestTwo.dbo.MyTable

使用合并(更像增量,但需要一个唯一的键):

MERGE TestOne.dbo.MyTable T
USING (SELECT fieldslist from TestTwo.dbo.MyTable) S
ON T.UniqueKey = S.UniqueKey
WHEN MATCHED THEN UPDATE SET
  field1=S.field1,
  ...
WHEN NOT MATCHED THEN 
    insert (fieldslist)
    VALUES(fieldslist)
WHEN NOT MATCHED BY SOURCE DELETE;

最新更新