获取一个用户的CHANGETABLE更改

时间:2013-06-14 14:11:47

标签: sql sql-server sql-server-2008 query-optimization

上下文

我正在使用SQL Server 2008和它的CHANGETABLE模块来保持多个数据库(SQlite)与运行的在线服务器同步(SQL Server 2008)

解决方案选择

我根据CHANGETABLE返回的结果生成查询。 例如:

idAccount | SYS_CHANGE_OPERATION

1 | û

会给我“更新帐户设置idAccount = 1,.. WHERE idAccount = 1”

如果您需要数据库的完整副本,此系统可以正常工作

然而问题是它会下载所有用户的所有帐户以及与其他用户相关的所有其他信息。

我希望能够指定一个idUser,以便我可以获得一个用户的信息。

问题是userId不在每个表中。我想避免像:

这样的查询
SELECT CT.idAccount,SYS_CHANGE_OPERATION
FROM CHANGETABLE(CHANGES Accounts, 0) AS CT
WHERE CT.idAccount IN (
    SELECT m.idAccount
    FROM Marketing m 
    WHERE m.idMarketing  IN (
        SELECT idMarketing
        FROM another_table
        WHERE userId IN(
            SELECT userId
            FROM Users u
            WHERE userId = 1
        )

    )
)

我希望我能够清楚地知道如何为一个用户获取所有更改而不进行像abow这样的查询?

0 个答案:

没有答案