0

我有一个链接到 ODBC 表的表,ODBC 数据名称是 CUSTOMER_USER,表的名称是 CUSTOMER_INFO,如果这些记录的日期不同,我需要使用传递删除 ODBC 链接表“CUSTOMER_USER_CUSTOMER_INFO”中的所有记录从当前日期。我尝试了以下代码并在查询设计选项卡中选择了“传递”,但它总是返回错误消息

DELETE CUSTOMER_USER_CUSTOMER_INFO.*
FROM CUSTOMER_USER.CUSTOMER_INFO
WHERE SUBMIT_DT <> NOW()

我也试过

DELETE CUSTOMER_USER.CUSTOMER_INFO.*
FROM CUSTOMER_USER.CUSTOMER_INFO
WHERE SUBMIT_DT <> NOW()

或者

DELETE CUSTOMER_USER_CUSTOMER_INFO.*
FROM CUSTOMER_USER_CUSTOMER_INFO
WHERE SUBMIT_DT <> NOW()

甚至

DELETE CUSTOMER_USER.CUSTOMER_INFO.*
FROM CUSTOMER_USER.CUSTOMER_INFO

以上均无效

4

2 回答 2

0

尝试这个?还包括一个 NULL 过滤器。NOW() 可能会出现问题。DATE() 不应该。您可能需要关闭直通,因为 DATEVALUE 是 JET 函数。

DELETE
FROM CUSTOMER_USER_CUSTOMER_INFO
WHERE DATEVALUE(SUBMIT_DT) <> DATE()
    AND SUBMIT_DT IS NOT NULL;
于 2014-04-24T02:03:41.063 回答
0

我知道这是一个旧线程,但我也遇到了这个问题。要注意的一件事是 SQL Server 上与您要从中删除的表的一对多关系。如果存在已定义的一对多关系并且您尝试从关系的 1 侧删除,SQL Server 将保留引用完整性,并且如果在“多”侧有相关记录,则不允许您从 1 侧删除关系。

另一件棘手的事情是,可能无法立即清楚在哪里可以找到这些关系。您可以查看 SQL Server 上的关系按钮,但问题也可能存在于一侧表的 DELETE 触发器中。所以有几个地方可以检查。您将不得不修改 DELETE 触发器或手动删除许多边记录,然后再删除 1 边记录。祝你好运。

于 2014-11-25T20:28:30.093 回答