그래서 내 DB의 루트에 "고객"테이블이 있습니다. 고객은 Receipts, Addresses, Documents 등의 약 6-7 개의 다른 테이블로가는 외래 키를 가지고 있습니다. SubmitChanges()를 사용하여 고객을 삭제할 경우 해당 외래 키 연관과 함께 모든 레코드를 찾아 삭제할 수도 있습니다. 또는 6 개의 쿼리를 수행해야합니까?LINQ DB에서 삭제하면 외래 키 연결이있는 다른 테이블의 레코드도 삭제됩니까?
0
A
답변
2
이 작업은 계단식 삭제 (예 : on delete cascade
)로 데이터베이스 테이블을 설정 한 경우에만 발생합니다. SQL에
LINQ가 지원하지 않거나 캐스케이드 - 삭제 작업을 인식 :
자세한 내용은 Insert, Update, and Delete Operations (LINQ to SQL)를 참조하십시오. 당신이 그것을에 대한 제약 조건이있는 테이블 에서 행을 삭제하려면 , 당신은 이 중 하나를 ON가 의 외부 키 제약의 데이터베이스를 CASCADE 규칙을 삭제 또는 먼저 삭제 에 자신의 코드를 사용하여 설정해야 자식 개체 부모 개체를 방지하는 삭제되었습니다. 그렇지 않은 경우 예외는 입니다.
0
외래 키 관계에 어떤 종류의 계단식 조치가 있습니까?
기본적으로 대부분의 데이터베이스 시스템 (내가 사용하는 것으로 추정되는 SQL Server 포함)에는 "ON DELET CASCADE"또는 다른 작업이 없으므로 아무 일도 일어나지 않습니다.
이 T-SQL 쿼리는 당신에게 당신의 외래 키 관계를 보여줍니다 및 DELETE 또는 UPDATE 참조 동작은 정의되어 있는지 여부 : 당신이 일이 발생 할 경우
SELECT
name 'FK Constraint',
OBJECT_NAME(parent_object_id) 'Parent table',
OBJECT_NAME(referenced_object_id) 'Referenced table',
delete_referential_action ,
delete_referential_action_desc ,
update_referential_action ,
update_referential_action_desc
FROM
sys.foreign_keys
, 당신은 할 필요가 FK 릴레이션이 계단식 액션을 사용하도록 설정되었는지 확인하십시오.
자세한 내용은 MSDN 문서 Cascading Referential Integrity Constraints을 참조하십시오.
관련 문제
- 1. 테이블의 외래 키
- 2. 다른 데이터베이스에있는 테이블의 MySQL 외래 키?
- 3. MySQL 테이블을 삭제하면 해당 테이블의 인덱스도 자동으로 삭제됩니까?
- 4. 여러 테이블의 동일한 외래 키
- 5. HABTM 연결에서 자동으로 결합 테이블의 레코드가 삭제됩니까?
- 6. 다른 이름의 외래 키
- 7. Django : 다른 외래 키
- 8. MySQL : 다른 테이블을 참조하는 한 테이블의 외래 키 두 개
- 9. 동일한 서버에있는 서로 다른 두 개의 DB에있는 테이블의 외래 키
- 10. SQL Server의 외래 키
- 11. 기본 테이블의 기본 키를 종속 테이블의 외래 키 필드로 전달해야합니다.
- 12. MYSQL에서 외래 키 조작
- 13. Linq to SQL 외래 키 매핑
- 14. Linq to SQL 외래 키 및 모음
- 15. show view에서 외래 키 삭제시 문제가 있습니까?
- 16. 스핑크스 - 다른 유형의 외래 키 - 연관성 문제
- 17. 레일 외래 키 문제
- 18. SQL 외래 키 테이블
- 19. Mysql 외래 키 딜레마
- 20. 테이블에 관계없는 외래 키?
- 21. 외래 키 문제 - mysql
- 22. 테이블 외래 키에 대한 MySQL 외래 키
- 23. Gtk, 빌더 포인터를 삭제하면 그것을 사용하여 작성된 모든 위젯이 삭제됩니까
- 24. 이 다른 SQL 테이블에 외래 키 참조로 SQL 테이블의 고유 제한 조건을 추가 SQL 서버에서 다른 SQL 테이블에 외래 키 참조로 SQL 테이블의 고유 제한 조건을 추가하는 방법을
- 25. 외래 키
- 26. 외래 키
- 27. 외래 키 MySQL의
- 28. 인덱싱 및 외래 키
- 29. SQL의 외래 키 제약
- 30. 기본 키 테이블의 기본 키를 기준으로 외래 키 테이블의 행 수 얻기