看板 C_Sharp 關於我們 聯絡資訊
大家好 再問一下 C#上的stored procedure問題 我的stored procedure 有兩份 一份在SQL SERVER上 一份在C#上 檔名都一樣 請問一下 如果我改了其中一份CODE(EX在C#上的 SP改)這樣我SQL SERVER上的也要改才行嗎 c#在跑sp的時候到底是以c#本身的sp為主還是sql server上的也要參照呢 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.249.8 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1464096603.A.667.html
testPtt: stored procedure不是只放SERVER端嗎? 05/24 22:28
O187: 你是不是對sp有什麼誤會 05/24 22:34
MOONY135: 我的確是不太熟悉sp可以麻煩請你解答一下我的疑惑嗎 05/25 00:18
shadow0828: sp 是只有放在SQL端,C#負責的是 去SQL呼叫指定sp 05/25 00:50
shadow0828: 有錯還請指正 05/25 00:51
MOONY135: 我們的是還會有一個sp在c#內... 檔名是.sql檔 05/25 01:05
ryan10328: 預存程序是你執行一次Creat procedure就會寫到伺服器的 05/25 02:13
ryan10328: ,你應該不必在C#再放一份 05/25 02:13
ssccg: 以SP來說,你的sql大概是create sp的sql,執行sp是去呼叫 05/25 02:40
ssccg: 已經create在SQL server上的sp 05/25 02:40
ssccg: 如果你sql裡面的不是create而是直接執行某些動作,就不是sp 05/25 02:40
ssccg: "stored" procedure就是stored在DB裡面的procedure 05/25 02:43
MOONY135: 我的sql指的是 c#裡面的sql嗎 05/25 06:55
LegendC: 檔名.sql可能是你們另外備份的 05/25 09:05
umum29: 我們的SP設計和你說的一樣 檔名.sql只在compile/build時 05/25 21:57
umum29: 才有效果 只要是做版本控管之用 05/25 21:58
umum29: 真正C#在call SP時,還是以當下DB的SP內容為主 05/25 22:00
GoalBased: 樓上說的我不懂,什麼叫做你的sql在compile/build 05/26 01:16
GoalBased: 的時候有效果? 05/26 01:16
umum29: 這種設計是為了版本控管 試想下列這種狀況: 05/26 07:18
umum29: 如果直接在DB上的SP直接改內容 有時改錯了或想知道誰改錯 05/26 07:20
umum29: .sql檔就提供了Commit的歷史資料 05/26 07:21
umum29: 如果直接在DB上的SP直接改內容 改到已經認不出原始SP邏輯 05/26 07:24
umum29: 當你想復原DB上的SP到原始版本 只要在TFS上重新build sln 05/26 07:25
umum29: 就可以將.sql的內容還原(執行)到DB的SP上 05/26 07:27
GoalBased: 那根compile/build有什麼關係? 05/26 12:39
umum29: 如果你知道ssccg大大的回文在說什 你應該就知道這種設計 05/26 22:04
umum29: 如果不懂得話, don't bother... 05/26 22:05
GoalBased: 我是懂他說的 但還是不太了解你說的..還是你要說的是 05/26 23:08
GoalBased: deploy的時候? 05/26 23:09
GoalBased: 如果是deploy的時候會決定要把db的sp更換成哪一個 05/26 23:10
GoalBased: 版本我是可以理解的 compile我就不太懂了 05/26 23:10
testPtt: 大概是#ifdef xxx {CREATE PROCEDURE ... 05/27 08:15
GoalBased: 樓上這樣好像也是個做法! 05/27 13:05