2011-06-22 28 views
2

我有一個很大的存儲過程。 它有多個插入到不同的表中。 我想要做的是暫停存儲過程並要求用戶確認一些東西(比如你喜歡插入的記錄),如果他們點擊是,我繼續存儲過程併到達第二個表。它是Sql Server 2008和asp.net前端。 謝謝!存儲過程用戶交互

更新:我需要大約100次暫停。除了創建100 sp以外沒有別的辦法嗎?

+2

如果您有100分,您需要停下來並要求用戶確認某件事情,那麼您首先需要重新設計流程。沒有人會想坐在那裏點擊100次。 – Hellion

+0

當然,沒有用戶座位100暫停確認。您能否詳細說明您的設計流程以及您將如何處理用戶交互?你正在嘗試的實際過程是什麼?提供更多詳細信息以獲得最佳解決方案 –

回答

5

用戶交互不會在存儲過程(SP)屬於相互作用。它屬於用戶界面。你需要分開處理所有這些 - 如果需要的話,可以編寫多個存儲過程。然後,您的用戶界面可以請求輸入,運行程序,獲得結果(如果需要),請求更多輸入(根據以前的結果,如果需要),運行另一個SP等,將用戶輸入作爲參數傳遞給SP它是SP所需要的。

編輯:想想你想做什麼。數據庫服務器旨在提供數據,而不是用戶界面。如果您有多個步驟過程需要用戶輸入這些步驟,則需要在用戶界面中處理這些步驟。服務器可以通過從用戶界面傳遞的參數接受輸入,並可以提供結果 - 就是這樣。該過程的每個步驟都應該是獨立的,UI應該控制這些步驟的流程。數據庫沒有任何關於用戶界面的知識;用戶界面正是它所謂的 - 與用戶交互的方式。

+0

好的。非常感謝 – user194076

0

然後你需要兩個存儲過程。
1.呼叫SP1
2.應用與用戶
3.通話SP2

+0

我有100個。沒有其他方法? – user194076

+0

考慮將您的SQL Server作爲對象,並將SP作爲該對象上的方法。如果你想要執行一半的方法,那麼控制權返回給調用者,並且在用戶交互之後完成方法的後半部分,你會怎麼做?恐怕你需要重構你的代碼,使每個SP(方法)全部執行,然後返回到ASP.Net代碼。因此,您需要爲您的示例提供多個SP。 – MatBailie

+0

我建議你編輯你的帖子,在評論中提供信息,然後刪除評論。該評論提供了一些很好的信息,並將大大改善您的答案。 :) –