今天遇到了一個奇葩的問題:存儲過程中的sql字符串拼接的太長,超出了分頁存儲過程執行sql參數的nvarchar(4000)的長度。
沒辦法,只能修改自己的存儲過程,因為分頁存儲過程是不能動的。
開始想到的方法是將里層的select語句抽出來,用exec(strInnerSql)執行,將查詢胡來的數據放到臨時表中,在@s中用臨時表獲取數據,結果以時報告終
錯誤原因:執行@s語句的時候找不到執行exec(strInnerSql)產生的臨時表
好郁悶啊,怎么會這樣呢,明明在一個存儲過程中執行的,怎么臨時表就獲取不到呢??????????
折騰了半天,這樣還是搞不定
無奈,只能將exec(strInnerSql)執行的那個sql抽出來,在代碼中執行,讓他產生臨時表,然后再在存儲過程中調用
驚奇,居然成功了!!!!!!!!
神啊,能告訴我為什么嗎????????????????
第一種方法為什么不行,第二種方法就行了啊
哪位大神路過,一定要告訴我問什么!!!!!!!!!!!!!!