簡體   English   中英

T-SQL查詢始終在SSMS中返回結果,但在通過ADO.NET通過.NET執行時偶爾無法返回結果

[英]T-SQL Query always returns results in SSMS, but occasionally fails to return results when executed through .NET via ADO.NET

我對過去2-3個月遇到過的問題有三次感到困惑。 這個問題的標題概述了這個問題,但更多細節:

我有一個SP,它通過SQL Server Mgmt執行時始終返回結果而沒有問題。 Studio,但很少(但足以引起嚴重的麻煩) - 當它通過.NET控制台應用程序調用時,它將不會返回任何內容。

我已經檢查了我所知道的SQL Server和Windows Server錯誤/應用程序日志(SQL Server日志以及SQL Server所在的Windows Server上的事件查看器中的所有內容),並且沒有任何內容顯示...

究竟是什么導致了這個? 應用程序,SP,一切正常。 只是當從.NET應用程序調用時,此SP無法返回數據。 我知道顯而易見的解決方案是從VS調試並在SP執行的開始到結束時查看連接的詳細信息(在發生這種情況時我也沒有得到異常)但是這不可能因為問題發生了藍色的,不可重復的。 我想阻止它再次發生。

這可能是自發刪除的SQL連接還是什么? 非常感謝任何想法,意見和建議。

這里的一個常見問題是正在使用的SET選項。 這並不明顯,因為您很少從SSMS或ADO.NET中明確設置它們,但它們可能不同 特別是這會影響任何涉及持久索引列,sql xml和一系列其他行為的內容; null-equality,concat-null,max-rows,schema-only(無數據),引號解釋,arith-abort等。

所以:找出正在使用的SET選項。

這可能是一個更大的問題,一些行為不端的代碼(無論是在DB還是調用客戶端)為某些目的設置一個選項而不會將其設置回來。 特別是如果該代碼僅偶爾運行。

東西是動態的東西嗎? 可能是您正在創建一個在某些情況下不起作用的sql語句。

分析是在行為中捕獲它的唯一方法。 查看它在不按預期運行時發送的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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