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
모든 도움을 주시면 감사하겠습니다.
명령을 가져 왔습니다. 명령 유형을? – AdaTheDev
[sp_recompile] (http://support.microsoft.com/kb/2536225)을 실행하면이 파일을 재현 할 수 있습니까? –
@AdaTheDev : 내 명령 유형이 CommandType.StoredProcedure로 설정됩니다. – davidoff