2
A
回答
3
是的,有在嵌套級別的限制。從manual:
您可以嵌套存儲過程高達32個級別。
的限制存在可能意味着嵌套存儲過程調用太多是不是一件非常好的事情的事實。然而,最高水平對我來說似乎足夠大,不必擔心像5層左右的嵌套調用。
事實上,我從來沒有聽說已經嵌套推出任何形式的缺點在你的設計要求,也沒有我經歷過任何實際的缺點從彼此調用存儲過程。相反,我認爲,考慮您的服務器端代碼可以使您的設計更加靈活。或者,如果沒有其他的東西,它至少允許你通過將更大的代碼拆分成更適中的(也可能是邏輯上完整的)單元來使你的存儲過程的代碼更易於管理。
我的意思並不是說,你應該儘量因素不惜任何代價,你的存儲過程,我不會看到什麼毛病不必窩你你的程序是否會更好地滿足您的設計。
4
最大嵌套級別是32 Nesting Stored Procedures。
在我看來,這樣做的真正的缺點是,它很快失控什麼SP依賴於其他SP。風險在於你改變了另一個SP中具有無法預料的效果的SP。一旦你咬了你幾次,你在改變SP之前猶豫不決,並且考慮創建一個幾乎完全相同的新的SP,並且過了一段時間,沒有人知道SP爲什麼或者實際上正在使用SP。容易相當混亂。
相關問題
- 1. 存儲過程嵌套
- 2. 嵌套存儲過程
- 3. 創建嵌套的存儲過程
- 4. 嵌套存儲過程中的事務之間的關係?
- 5. 嵌套存儲過程中的嵌套事務
- 6. LINQ to SQL - 嵌套存儲過程
- 7. JDBC:Oracle存儲過程返回嵌套表
- 8. if else嵌套在存儲過程中
- 9. MySql嵌套存儲過程調用
- 10. 從存儲過程返回嵌套表
- 11. 嵌套TransactionScopes在CLR存儲過程
- 12. SQL Server中的嵌套循環,來自存儲過程的結果提供嵌套存儲過程
- 13. 使用嵌套的存儲過程結果調用存儲過程Sql Server 2008
- 14. 從外部存儲過程獲取參數值 - 嵌套存儲過程
- 15. 獲取嵌套的存儲過程依賴
- 16. 嵌套存儲過程中的SQL變量
- 17. SQL Server存儲過程中的嵌套事務
- 18. mysql存儲過程中的嵌套循環
- 19. MySQL - 使用嵌套存儲過程的結果
- 20. 如何調用嵌套的存儲過程sql
- 21. 嵌套的SQL存儲過程而不是循環
- 22. Oracle嵌套表作爲Mybatis存儲過程的輸入參數
- 23. SQL在存儲過程中嵌套的Case語句
- 24. 如何做一個沒有存儲過程的嵌套事務?
- 25. 嵌套循環的列和行..在存儲過程
- 26. 如何在嵌套過程中找到父存儲過程的ID?
- 27. 存儲過程相關
- 28. C#使用嵌套UDT調用Oracle存儲過程
- 29. MYSQL 5.5嵌套存儲過程錯誤處理
- 30. Mysql在循環中嵌套在存儲過程中
對不起,你的要點是什麼?我只是不確定。它是嵌套存儲過程還是「複製」它們使事情變得凌亂? – 2012-03-02 08:23:59
@AndriyM - 問題的關鍵是,我認爲你應該小心使用SP的實現[DRY(http://en.wikipedia.org/wiki/Don%27t_repeat_yourself)原則。在某些情況下,擁有一個可以在其他SP中重用的定義明確的任務的SP當然是有道理的,但是......在我看來,嵌套SP是很難維護的。忘了回答你的問題。 「嵌套」和「幾乎複製」都會讓事情變得混亂。所以在我工作的項目中,我們有**沒有**(幾乎)DB/SP中的所有不受約束控制的業務規則都被控制在中間服務器中。 – 2012-03-02 08:34:08
我現在看到,非常感謝!我認爲我可以同意維護SPs(特別是當它們中有很多時)比維護大致相同數量的客戶端代碼更困難。有一種情況是,如果有一個及時更新的產品文檔是非常重要的,並且不僅僅是一個人參與維護SP時更是如此。 – 2012-03-02 09:01:07