簡體   English   中英

SQL-CLR存儲過程未返回值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM