none
SQL語法批次 update資料 RRS feed

  • 問題

  • 我有一個資料表 , 程式的功能是需將每一筆資料讀出 , 然後更改某欄位的data之後再寫回去 , 目前的做法是select出資料後 , 跑迴圈 ,在回圈中再以 update 方式一筆一筆更新欄位資料 , 但這樣方式頗費時 , 我聽過可以試看看SQL Batch的方式 , 這種情況可行嗎? 另外SQL  Batch是指將 多個SQL字串組合在一起 , 中間以分號隔開 , 只是如此嗎?

    我在查詢網路搜尋及論壇 , 並沒有查到答案 , 不曉得是否有高手熟這方面的問題 , 先謝謝所有回覆者.

    2011年5月16日 上午 02:34

解答

  • 我依照你所說的SQL Batch但並未找到相關資料,不過依照你所說的組字串方式SQL是可行的,但必須注意,若你資料量太大組出來的字串也會很大,這是必須特別注意的地方。
    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    • 已標示為解答 jeff-huangch 2011年5月29日 下午 03:23
    2011年5月16日 上午 03:33

所有回覆

  • 或許你可以考慮使用Cursor的方式來處理,不過請注意效能問題。

    http://msdn.microsoft.com/en-us/library/ms180169.aspx


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年5月16日 上午 03:00
  • 用 UPDATE tableName SET .....   FROM tableName INNER JOIN ..... WHERE XXXXX  這種語法
    2011年5月16日 上午 03:30
  • 我依照你所說的SQL Batch但並未找到相關資料,不過依照你所說的組字串方式SQL是可行的,但必須注意,若你資料量太大組出來的字串也會很大,這是必須特別注意的地方。
    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    • 已標示為解答 jeff-huangch 2011年5月29日 下午 03:23
    2011年5月16日 上午 03:33
  • A sample on Batch Update to MS SQL with dataAdapter,

    http://msdn.microsoft.com/en-us/library/kbbwt18a(v=vs.80).aspx


    大家一齊探討、學習和研究,謝謝!
    Microsoft MVP, Microsoft Community Star(TW & HK), MCT,
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD
    2011年5月19日 上午 10:12
  • 如果沒有 "自動編號" 這類問題的話, 可以 Select --> Delete -->Bulk Insert

    詳情參閱MSDN文件庫 [SqlBulkCopy 類別]


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年5月29日 下午 12:40