[英]SQL-CLR stored procedure doesn't return value
我瀏覽了Stackoverflow,在這里發現了幾乎相同的問題 。 一年前被問到,至今沒有人回答。 也許我會比user1038334更幸運,有人會幫助我。
我有一個SQL CLR存儲過程,該過程可以正常運行數天,直到發生奇怪的事情為止。 我存儲的proc更新表並返回一個值作為結果代碼。 因此,通過查看此值,我可以確定是否出現問題。 問題在於接收此結果值。 C#代碼在接收返回值時拋出異常。
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版本:Microsoft SQL Server開發版(64位)-v.10.50.1765.0
主機操作系統版本:Microsoft Windows NT 6.1(7601)
.Net版本:v4.0.30319
任何幫助將不勝感激。
這是一個SQL Server錯誤, 累積更新包8修復了該問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.