SELECT * FROM sysobjects where type='P' 으로 조회시 시스템, 사용자 정의 저장 프로시저가 모두 조회 되는데
사용자 정의 저장 프로시저만 조회할 방법을 알고 싶어서 문의 드립니다.
Comment 3
-
catchv
2014.05.26 09:42
SELECT *
FROM sysobjects
WHERE OBJECTPROPERTY(id, 'IsMSShipped') = 0
AND type = 'P' -
역시 제대로 된 방법이 있었군요... ㅠㅠ
자신없지만 오랫동안 댓글이 없어서 댓글답니다.
SQL2000에서 사용자 프로시져를 시스템 프로시저로 만들려면 sp_MS_marksystemobject 프로시져를 사용합니다.
이 프로시져 소스 마지막 부분에 보면
update sysobjects set status = status | 0xC0000000
where id = object_id(@objname, 'local')
이런 부분이 나옵니다.
status를 0xC0000000과 비트OR 연산을 합니다.
status는 int형식인데 0xC0000000이면 .....
....
.... (중간생략) -_-;;
그래서 제 생각에 status가 음수이면 시스템 프로시져 양수이면 유저 프로시져가 아닐까 예상해봅니다. ㅎ