我有两个数据库,一个“主”源(本地保存)和一个“复制”数据库(要分发)。一旦分发(本地或跨网络),两者都无法看到彼此,因此我们无法在分发后跨数据库执行查询。在分发复制数据库之前,我需要从复制数据库中删除一些内容,因此我决定创建一个 VBA 脚本来生成用于分发的复制数据库。
表中有查找,所以我决定保存一个模板数据库(从主源复制,然后从其中剥离表),然后删除表并以适当的顺序重新创建它们。
我现在需要删除一些数据,我很挣扎。
DeviceTable:
AutoNumber(ID)
Text(DeviceName)
Integer(ClusterID)
Text(Distribution)
ClusterTable:
AutoNumber(ID)
Text(ClusterName)
VirtualSystemTable:
AutoNumber(ID)
Text(VirtualSystemName)
Integer(ClusterID)
Integer(DeviceID)
InterfaceTable:
AutoNumber(ID)
Integer(VirtualSystemID)
Integer(ClusterID)
Integer(DeviceID)
Text(Description)
对于未标记为分发的任何内容,我需要从 DeviceTable、ClusterTable、VirtualSystemTable 和 InterfaceTable 中删除条目:“Public”
通常我会这样做(在psudocode中):
arrDEV = SQL("SELECT ID, ClusterID FROM DeviceTable WHERE Distribution<>"Public"")
然后,对于每个响应,我会
arrVSYS = SQL("SELECT ID FROM VirtualSystemTable WHERE DeviceID=$arrDEV.ID OR ClusterID=$arrDEV.ClusterID")
SQL("DELETE FROM InterfaceTable WHERE DeviceID=$arrDEV.ID OR ClusterID=$arrDEV.ClusterID OR VirtualSystemID=$arrVSYS.ID")
SQL("DELETE FROM VirtualSystemTable WHERE DeviceID=$arrDEV.ID OR ClusterID=$arrDEV.ClusterID")
SQL("DELETE FROM ClusterTable WHERE ID=$arrDEV.ClusterID")
我的问题是我不知道如何跨数据库链接执行这些查询。我很有趣 ADODB。我通常用 PHP 编码,所以这对我来说有点困难!