sql - 具有跨数据库服务器联接的SQL Server 2005脚本

标签 sql sql-server sql-server-2005 join

我有以下脚本,用于在两个不同数据库的表之间给我一个简单的“ diff”。 (注意:实际上,我的比较不仅仅只是一个ID)

SELECT
    MyTableA.MyId,
    MyTableB.MyId
FROM
    MyDataBaseA..MyTable MyTableA
FULL OUTER JOIN
    MyDataBaseB..MyTable MyTableB
ON
    MyTableA.MyId = MyTableB.MyId
WHERE
    MyTableA.MyId IS NULL
OR
    MyTableB.MyId IS NULL


现在,我需要在不同服务器上存在的两个数据库上运行此脚本。目前,我的解决方案是从一台服务器备份数据库,将其还原到另一台服务器,然后运行脚本。

我很确定这是可能的,但是,这可能是蠕虫病毒吗?这是我需要执行的非常罕见的任务,如果它涉及大量的数据库设置更改,那么我可能会坚持使用备份方法。

最佳答案

如果您在SQL中设置了链接服务器,则可以像这样运行常规查询。
这是假定MyDatabaseB在您将链接服务器设置到的远程服务器上,并且查询正在具有MyDatabaseA的服务器上运行。

SELECT
MyTableA.MyId,
MyTableB.MyId
FROM
MyDataBaseA..MyTable MyTableA
FULL OUTER JOIN
LinkedServerName.MyDataBaseB.dbo.MyTable MyTableB
ON
MyTableA.MyId = MyTableB.MyId
WHERE
MyTableA.MyId IS NULL
OR
MyTableB.MyId IS NULL

关于sql - 具有跨数据库服务器联接的SQL Server 2005脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2720500/

相关文章:

sql - 子查询有子句错误,我错过了什么?

sql - 使用 "Like"函数比较同一个表中的 2 列

sql - 单个 SQL 查询处理 NULL 和非 NULL 值

php - 如何在 SQL 结果中搜索特定值?

sql - 识别具有不一致关系的记录

sql - 如何阻止 SQL Server 中的 real-to-varchar(50) 转换截断值?

sql - 使用同一 select 语句中的 N 动态选择前 N 个

SQL Server 问题 - XML 查询

sql - 在 Oracle 中创建一个 View 来显示每个部门的平均工资?

sql - 处理多维数据集时出错 : There is not enough space on the disk