일부 SQL Azure 데이터베이스 항목을 삭제해야하며 cascade on delete
이 지정되었는지 확실하지 않습니다. 우연히 내가 중요한 것을 지우는다면, 나는 상처의 세계에 빠져있다. 그래서 계단식 삭제를 확인하는 명령이 있습니까?테이블이 삭제시 계단식으로 표시되는지 보여주는 SQL 명령
답변
sp_fkeys
을 사용하십시오. http://msdn.microsoft.com/en-us/library/ms175090.aspx 결과 집합의 "DELETE_RULE"열을보십시오.
0=CASCADE
1=NO ACTION
예 :
USE MyDB;
GO
EXEC sp_fkeys @pktable_name = N'MyTable',@pktable_owner = N'MyUserName';
* N'MyUserName '비트가 없어도 작동합니다. 감사! 결과가 어두워지며 삭제가 계속 켜져 있습니다. 또한 Azure에 ** USE **가 없습니다. – Gleno
@Gleno DB에 대한 사용 권한이 무엇인지 모르겠지만 계단식 삭제를 제거 할 수 있습니다 (DB 스키마를 실제로 알고 있어야하며 ' t 그것을 위로 던지십시오) –
아, 나는 그것이 그것을 망칠 것이라는 점을 믿습니다. 수동으로 청소하겠습니다. 스 니펫을 사용하여 2 가지 종속성 만 있다는 것을 알게 된 후 조심스럽게 진행할 수 있습니다. :) – Gleno
당신은 당신이 당신이 뭔가를 삭제하려는 테이블에 FK와 테이블이 건가요? 캐스케이드 삭제가있는 경우, 어떤 일이 발생했는지 알 수 있습니다. 하지 않으면 삭제가 실패합니다. 그게 옳은 것이 아닌가? – n8wrl
나는 FK가있는 테이블을 가지고 있을지도 모른다. .. 나는 모른다. 위험을 감수하고 힘든 길을 찾으면 상처의 세계를 볼 수 있습니다. =)이 경우 먼저 FK 제약 조건을 이동해야합니다. – Gleno
@Gleno, Fks를 그냥 다시 지우지 마십시오. 삭제할 수 있습니다. 거기에는 이유가 있기 때문에 제거하고 자녀를 삭제하지 않고 부모를 삭제하면 데이터 무결성 문제를 해결할 수 있습니다. 상위 레코드로 삭제 된 하위 레코드를 원하지 않으면 상위 레코드를 삭제할 수 없습니다. 대신 비활성으로 표시하십시오. – HLGEM