2012-04-13 2 views
0

Stackoverflow를 살펴본 결과 question here과 거의 같습니다. 1 년 전에 질문을 받았고 아무도 아직 대답하지 않았습니다. 어쩌면 나는 user1038334보다 더 운이 좋을 것이고 누군가 나를 도울 것입니다.SQL-CLR 저장 프로 시저가 값을 반환하지 않습니다.

뭔가 이상한 일이 일어날 때까지 일 동안 잘 작동하는 SQL CLR 저장 프로 시저가 있습니다. 내 저장된 proc 테이블을 업데이트하고 결과 코드로 값을 반환합니다. 그래서이 값을보고 뭔가 잘못되었는지 판단 할 수 있습니다. 문제는이 결과 값을받는 것입니다. C# 코드는 반환 값을받는 지점에서 예외를 throw합니다.

var returnValue = new SqlParameter {Direction = ParameterDirection.ReturnValue}; 
command.Parameters.Add(returnValue); 

connection.Open(); 
command.ExecuteNonQuery(); 

return (int)returnValue.Value; //<-- here is an exception 

그리고 재미있는 것은 내가 SQL 프로파일 러 연결하면, 난 여전히 아무 문제없이 결과 값을 얻을 수있는 쿼리를 잡을 다음 SQL Server Management Studio를 내부에이 쿼리를 실행하는 것입니다 :

DECLARE @RC INT 
EXECUTE @RC = MyClrStoreProc 
SELECT @RC 

일단 CLR 어셈블리를 다시 게시하거나 SQL Server를 다시 시작하면 모든 문제가 해결됩니다.

나는 이상한 행동에 대한 이유가 있어야한다고 확신하지만 찾을 수 없다.

  • SQL Server 버전 : 마이크로 소프트 SQL 서버 개발자 버전 (64 비트) - v.10.50.1765.0

  • 호스트 OS 버전 : 마이크로 소프트 윈도우 NT 6.1 (7601)

  • 닷넷 버전 : v4.0.30319

모든 도움을 주시면 감사하겠습니다.

+0

명령을 가져 왔습니다. 명령 유형을? – AdaTheDev

+0

[sp_recompile] (http://support.microsoft.com/kb/2536225)을 실행하면이 파일을 재현 할 수 있습니까? –

+0

@AdaTheDev : 내 명령 유형이 CommandType.StoredProcedure로 설정됩니다. – davidoff

답변

관련 문제