这是我尝试运行的代码:
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/