2013-05-03 2 views
1

Sybase IQ에서 저장 프로 시저의 종속성을 확인하고 싶습니다. sysdepends가없는 것으로 간주되어 특정 저장에 대한 종속성을 나열하는 방법을 알려 줄 수 있습니다 순서?Sybase IQ의 sysdepends에 대한 대안

답변

1

Sybase IQ에서 종속성 정보는 SYSDEPENDENCY 시스템 뷰에 있습니다. 종속성 정보를 찾으려면 SYSDEPENDENCY, SYSOBJECT 및 SYSPROCS를 조인하여 저장 프로 시저의 종속성을 찾으십시오.

+0

감사합니다. 어떤 테이블에 참여할 지 말해 줄 수 있습니까? 시도했지만 빈 결과 집합으로 돌아 왔습니다. select * from sysdependency sd, sysobjects so (ref_object_id = id 또는 dep_object_id = id) 및 name = 'mysp' – codevalid

+0

* sysobjects *는 ASE 호환 뷰입니다. 대신 * sysobject *를 사용합니다. 이것은 IQ 오브젝트보기입니다. 'name'은 이들 테이블 중 하나의 컬럼이 아니므로 * sysprocs *를 추가하여 찾고자하는 것을 얻을 수 있습니다. –

+0

불행히도 이것은 sybase iq 매뉴얼에서 찾은 것입니다. 다른 테이블/뷰를 참조하는 뷰가 있으면 두 객체 사이의 링크가 이제 SYSDEPENDENCY 테이블에 저장됩니다. – codevalid

-1

sybase IQ에서 proc의 종속성을 찾는 시스템 프로 시저가 없습니다. sysdependency에는 뷰에 대한 정보 만 포함되므로이 시나리오에서는별로 도움이되지 않습니다.

proc 파일에서 사용되는 모든 테이블을 검색 할 수있는 유닉스 스크립트를 사용하려고 시도 할 수도 있지만, 그 방법은 확실한 해결책은 아닙니다.

0

오래 동안이지만 누군가가이 혜택을 누릴 수 있다고 생각했습니다.

select soRef.name, soRef.type, soRef.id,suRef.user_name, soDep.name, soDep.type, 
suDep.user_name, soDep.id from SYSDEPENDENCY sd 
join sysobjects soREf on soRef.id=sd.ref_object_id 
join sysobjects soDep on soDep.id=sd.dep_object_id 
join sysuser suRef on suRef.user_id=soREF.uid 
join sysuser suDep on suDep.user_id=soDep.uid 
where suRef.user_name='myusername'