SQL Server 2005 프로파일러에 표시된 대로 저장 프로시저를 추적했습니다.찾을 수는 없지만 작동합니다.왜?

StackOverflow https://stackoverflow.com/questions/85181

문제

이것은 꽤 이상합니다.

프로파일러를 열어 보았는데 분명히 저장 프로시저가 호출된 것으로 나타났습니다.데이터베이스와 SP 목록을 열었지만 SP가 존재하지 않습니다.그러나 접두사 'x'가 있다는 점을 제외하고 이름이 동일한 또 다른 SP가 있습니다.

SQL Server 2005에서는 보안을 위해 SP 이름을 다른 이름으로 매핑합니까?

편집하다:그것이 무엇이든 동의어라는 것을 알았습니다.

도움이 되었습니까?

해결책

일반적으로 개체가 쿼리에 사용되었기 때문에 개체가 존재한다는 것을 알고 있지만 Management Studio의 개체 트리에서 찾을 수 없는 경우 이를 통해 찾을 수 있습니다.

select *
from sys.objects
where name = 'THE_NAME_YOU_WANT'

방금 확인했는데 동의어와 함께 작동합니다.

다른 팁

어리석은 질문일 수도 있지만 혹시 모르니...SP 목록을 새로 고쳤습니까?다른 소유자의 해당 이름의 저장 프로시저를 확인했습니까?소유자를 지정하지 않고 저장 프로시저를 만든 경우 해당 소유권이 목록에 있을 수 있습니다(예를 들어 목록이 "dbo"로만 필터링된 경우에는 소유권이 전혀 없을 수 있음).

데이터베이스의 모든 개체를 볼 수 있는 권한이 없을 수 있습니다.

이전 답변에 추가하면 "시스템 저장 프로시저" 아래에 있을 수도 있고, 저장 프로시저 이름이 "sp_"로 시작하는 경우 마스터 데이터베이스에도 있을 수 있습니다.

저장 프로시저는 저장 프로시저 생성 시 선택한 데이터베이스 내에 있습니다.따라서 데이터를 추출하는 데이터베이스 내부를 검색하세요. 그렇지 않으면 마스터 데이터베이스 내부에 있게 됩니다.그래도 찾을 수 없다면 첫 번째 숫자 솔루션이 가장 좋습니다.즉.

select * from sys.objects where name = 'name of stored procedure'
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top