解決存儲過程中拼接的SQL字符串超長導致sql語句被截取的問題


今天遇到了一個奇葩的問題:存儲過程中的sql字符串拼接的太長,超出了分頁存儲過程執行sql參數的nvarchar(4000)的長度。

沒辦法,只能修改自己的存儲過程,因為分頁存儲過程是不能動的。

開始想到的方法是將里層的select語句抽出來,用exec(strInnerSql)執行,將查詢胡來的數據放到臨時表中,在@s中用臨時表獲取數據,結果以時報告終

錯誤原因:執行@s語句的時候找不到執行exec(strInnerSql)產生的臨時表

好郁悶啊,怎么會這樣呢,明明在一個存儲過程中執行的,怎么臨時表就獲取不到呢??????????

折騰了半天,這樣還是搞不定

無奈,只能將exec(strInnerSql)執行的那個sql抽出來,在代碼中執行,讓他產生臨時表,然后再在存儲過程中調用

驚奇,居然成功了!!!!!!!!

神啊,能告訴我為什么嗎????????????????

第一種方法為什么不行,第二種方法就行了啊

 

哪位大神路過,一定要告訴我問什么!!!!!!!!!!!!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM