sql - 如何避免 MS Access 中的 "Cannot delete from specified tables."

标签 sql ms-access runtime-error sql-delete

这是我尝试运行的代码:

DELETE DISTINCTROW JHALL_REFERAL_ASSIGNMENTS.emp_id, JHALL_REFERAL_ASSIGNMENTS.ref_elem_id
FROM JHALL_REFERAL_ASSIGNMENTS
WHERE (((JHALL_REFERAL_ASSIGNMENTS.emp_id)=(select  b.emp_id from JHALL_REFERAL_ELEMENT a, JHALL_REFERAL_ASSIGNMENTS b, BSI_MARTS_D_EMPLOYEE c
    where C.FULL_NM = 'Employee'
    and A.REF_NAME ='Max Premium of 5,000'
    and A.REF_ELEM_ID = B.REF_ELEM_ID
    and B.emp_id = C.EMPLOYEE_KEY
)) AND ((JHALL_REFERAL_ASSIGNMENTS.ref_elem_id)=(select  a.ref_elem_id from   JHALL_REFERAL_ELEMENT a, JHALL_REFERAL_ASSIGNMENTS b, BSI_MARTS_D_EMPLOYEE c
    where C.FULL_NM = 'Employee'
    and A.REF_NAME ='Max Premium of 5,000'
    and A.REF_ELEM_ID = B.REF_ELEM_ID
    and B.emp_id = C.EMPLOYEE_KEY
  )));

每次我尝试在 Access 中运行它时,我都会收到错误 3086,“无法从指定的表中删除”。在尝试在线查找信息时,我不断遇到决议,说我应该将“唯一记录”字段更改为"is",我这样做了,但这并没有解决我的问题。我在 Toad 中运行了相同的代码(用 . 而不是 _ 分隔模式和表名)并且它运行良好。

最佳答案

我查看了几篇文章,包括这篇文章,以解决类似的删除问题。我使用查询将有些复杂的选择标准提炼成一组主键,用于针对记录删除的表。

我收到了“无法从指定的表中删除”错误和“指定包含要删除的记录的表”错误,直到我使用:

delete distinctrow [Target_Table].* 
from [Target_Table] 
inner join [Criteria_Query] 
on [Criteria_Query].Index_PK = [Target_Table].Index_PK
where ( [Criteria_Query].Index_PK = [Target_Table].Index_PK )
;

这在 Access 2013 中有效。

关于sql - 如何避免 MS Access 中的 "Cannot delete from specified tables.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11402157/

相关文章:

qt - Qt找不到dll,尽管一切都已设置

regex - 在正则表达式中,神秘错误 : assertion 'tree->num_tags == num_tags' failed in executing regexp: file 'tre-compile.c' , 第 634 行

mysql - 以下sql查询有什么区别?

php - 在 PHP 中保护 SQL 查询的最佳方式

ms-access - MS Access 对两个表进行 dlookup

mysql - 两个表,两个表中多个字段要连接,单个输出 : How?

vba - 运行时错误 "424: Object Required"

mysql - 计算 MySQL JSON 表中数组中项目的第一次出现次数

sql - PostgreSQL 如何删除重复值

csv - 使用 CSV 文件自动更新 Access 表