: 내 하루의 대부분을하고있다으로 데이터베이스를 리팩토링 할 때 종종SQL Server 2008 고아 저장 프로 시저? 내가이 전에 본 적이 없다</p> <p>SQL Server Management Studio를 통해 SQL Server 2008을 사용하고
, 내가 사용하는 찾기 위해 다음과 같은 기존 절차의 열, 테이블 및 기타 절차에 대한 참조 :이 특별한 아무것도 없다
select *
from sys.sql_modules
where [definition] like '%SomethingImLookingFor%'
, 나는 데이터베이스 헤드의 확인 많은 전에 그것을 짓을 해요.
그러나 나는 (실제로 생성 된 경우) 총 사고로 보인 절차가 결과에 포함되어 있음을 확인했습니다. 데이터베이스에서 나는 ChatObject_Remove
이라는 프로 시저를 가지고 있는데, 이는 %Remove%
이라는 용어를 참조하는 것을 찾고 있었기 때문에 내 쿼리에 나타났습니다. 그러나 나는 또한 확장 할 때 SSMS에서
zzChatObject_Remove
라는 유령 절차를 참조 데이터베이스의 내가 ChatObject_Remove
를 참조 Programmability -> Stored Procedures
있지만 zzChatObject_Remove
.
이 그룹을 새로 고치려고했지만 고스트가 표시되지 않습니다.
나는 존재하지 않았다 중 하나를 말하는 오류를 반환 문drop procedure [dbo].[zzChatObject_Remove]
를 사용하려고 또는 내가 권한이 없습니다. 나는 프로 시저를 만들려고
는zzChatObject_Remove
라고 그것은 내가 그것을 할 수 (하지만 지금은 create procedure zzChatObject_Remove ...
에 대한 정의와 sql_modules
2 개체를했다). 그런 다음 허용 된 새 파일을 삭제했습니다. 예상대로 유령은 모듈 테이블에 있으며 필자는이를 만질 수 없습니다.
이전에 본 사람이 있습니까? 이 다른 곳은 어디 있겠습니까? 어떤 해를 끼칠 수 있습니까? sys.sql_modules
테이블에서이 겉으로보기에는 고아 인 절차를 제거하려면 어떻게해야합니까?
미리 알려 주셔서 감사합니다.
그냥 내 행운, 할로윈시기에 유령 ...
다른 스키마에 있는지 확인 했습니까? – RBarryYoung
데이터베이스 컨텍스트에서이 문을 실행하고 데이터베이스가 생성되었을 때의 위치를 알려주는 정보를 제공하는지 확인하십시오. select * from sys.procedures 여기서 [type] = 'P' –
저장 프로 시저 이름에 후행 공백이나 유니 코드 문자가 있습니까? –