我在sql存儲過程中遇到問題。我有一個存儲過程,其中包含一個動態的SQL查詢,創建臨時表,將數據插入此臨時表。在我的本地這個存儲過程的結果顯示罰款。但在生產環境中,結果的順序會發生變化。我只有該生產的選擇權限,所以我無法在生產數據庫中運行該sp。任何人可以提出任何解決方案。是否有可能運行該SP並查看生產結果sp。謝謝使用存儲過程查找結果集的排序原因
回答
恐怕你的問題不是很具體,但如果你依賴於結果的順序,並且你沒有在返回結果的查詢上使用ORDER BY
(在你的情況中,它可能是最後一個聲明),那麼你應該。除非您使用ORDER BY
,否則結果順序不能保證。
如果你已經是,也許你可以發佈你的查詢的相關部分。
感謝您的回覆。在查詢中完成排序。主要問題在於它只發生在一個存儲過程而不發生在其他Sp上。請讓我知道如果你需要任何其他細節 – user638904 2011-04-06 13:20:01
我會檢查兩個數據庫的整理是一樣的。假設MS Sql Server,右鍵單擊Mgmt Studio中的數據庫節點並查看屬性。排序規則將類似於SQL_Latin1_General_CP1_CI_AS
。
如果它們不匹配,除非您指定明確的ORDER BY
子句,否則「自然」排序順序可能會有所不同。
嗨,謝謝,我很想嘗試你給的解決方案。 – user638904 2011-04-06 13:26:52
嗨在這兩種環境下對照都是一樣的。這裏是查詢的簡要描述。首先我們選擇記錄並插入臨時表中。然後再創建一個臨時表來存儲最終結果。在這個臨時表中首先插入標題。'插入到#TempChaseReport值(''學生FName'',''學生LName'',''練習考試1'',''練習考試2''''' – user638904 2011-04-07 07:34:48
然後我在第一步循環選定的記錄並將其插入此tempChaseReport表中。插入所有記錄後,我創建了一個更多的臨時表,其中我正在做以下查詢。插入到#TempChaseReport2選擇* FROM #TempChaseReport其中id_num = 1 插入#TempChaseReport2選擇* FROM #TempChaseReport 其中id_num!= 1按MgrLoginID,LastName,myflag順序排列。 – user638904 2011-04-07 07:39:11
我能想到的兩種可能把我的頭頂部沒有更多的信息:
1)生產和當地的環境中配置不同,尤其是在tempdb數據庫的核對(這將是臨時表使用的默認排序規則,除非您在CREATE語句中另行指定)。因此任何字符字段的排序都會有不同的表現。
2)你根本沒有做任何特定的排序,在這種情況下,'默認'順序是由很多事情支配的,並且在服務器之間不太可能是相同的。
我已經完成了在存儲過程中的命令。我只是檢查數據庫中的排序規則。感謝您的回覆。在數據庫中, – user638904 2011-04-06 13:26:19
排序規則相同。請讓我知道是否有其他參數。 – user638904 2011-04-08 08:50:10
- 1. 排序存儲過程的結果
- 2. 過濾存儲過程的結果集
- 3. 在另一個存儲過程中使用mysql存儲過程的結果集
- 4. 存儲過程中的SQL結果集
- 5. Magento - 使用存儲過程數組結果集作爲集合
- 6. 存儲結果集的原則?
- 7. Oracle存儲過程返回結果集
- 8. 從存儲過程得到結果集
- 9. 從存儲過程合併結果集
- 10. sql存儲過程清除結果集
- 11. 存儲過程用查詢結果集填充變量
- 12. 找回結果從存儲過程
- 13. 訪問存儲過程的結果集,使用SqlDataSource.Select執行
- 14. 使用JPA和返回多個結果集的存儲過程
- 15. 使用Where子句篩選存儲過程的結果集
- 16. 使用存儲過程的結果集填充GridView
- 17. $查找結果排序
- 18. 在存儲過程結果集中的Linq查詢Ado.Net
- 19. 根據存儲過程的結果對錶格進行排序
- 20. 使用Mule ESB解析MySQL存儲過程結果集
- 21. 可以使用T-SQL對存儲過程的結果進行排序嗎?
- 22. Oracle查詢/存儲過程返回多個結果集
- 23. 如何在存儲過程中檢查結果集爲空
- 24. 在存儲過程結果集上查詢
- 25. 在更新查詢中使用存儲過程的結果
- 26. 存儲和使用存儲過程中的select語句結果?
- 27. 如何使用mysql存儲過程存儲返回的結果
- 28. 存儲過程結果?
- 29. AutoMapping存儲過程結果
- 30. 使用嵌套的存儲過程結果調用存儲過程Sql Server 2008
SQL Server?甲骨文? – MartW 2011-04-06 12:44:37
我正在使用SQL Server – user638904 2011-04-07 07:50:45