在我的一个解决方案中,我正在使用 SQL Server 的更改跟踪功能。为了区分实际应用程序所做的更改和同步应用程序所做的更改,我们使用了更改上下文。现在,据我所知,此更改上下文的类型为 varbinary(128)。
在应用程序逻辑中,我们创建一个字节数组,其中包含一些随机字节用作更改上下文,当同步应用程序进行任何更改时,它会使用此更改上下文。然后,当我们尝试获取实际应用程序所做的更改集时,没有任何更改上下文,我们在查询中使用以下代码片段
SELECT .... from .... WHERE (SYS_CHANGE_CONTEXT != @context OR SYS_CHANGE_CONTEXT IS NULL)
这里,@context 是类型为 VARBINARY(128) 的命令参数,它被添加到 sqlcommand 以获取更改集。无论传递给命令的更改上下文如何,它仍然会获得所有更改。
是否有任何特殊方法可以比较 VARBINARY 值或将它们作为参数发送?