none
將資料寫入不同資料庫? RRS feed

  • 問題

  • 請問如何在ADO.NET中.利用SqlCommand寫入不同資料庫中?

    兩個資料庫都是在同一台主機之上
    直接使用SQL Server Management Studio可以在master中
    以[db1].[dbo].[tb1]與[db2].[dbo].[tb1]之類的指定方式直接用SQL寫入

    可是在ADO.NET之中SqlConnection的ConnectionString一次只能指定一組資料庫
    所以我目前的作法是
    2組連線字串+2組SQL命令
    第一組db1負責讀取資料.第二組db2負責寫入資料.
    中間利用DataReader來逐筆執行

    可是我覺得這樣負荷有點重
    假設db1取出來的筆數為10萬筆.那db2就要寫入10萬次..
    每次都要Connection.Open()又要Connection.Close()
    還沒算到交易的部份

    所以我想問一下各位
    在遇到資料要寫入不同資料庫時大家都怎麼解決?
    2009年12月29日 上午 09:50

解答

  • 1. 照舊, 分開寫
    2. 直接在trigger中做
    3. 如果是可以一次寫入一大堆, 例如從db1讀出來的資料不需和db2比較可以直接寫入的話, 可以直接用DataAdapter取出資料放進 DataTable執行個體. 然後用 [SqlBulkCopy 類別 ]做大量寫入db2. 這樣就只有開關兩次.
    4. 另請參閱 [.NET Framework 開發人員手冊 SQL Server 中的大量複製作業 (ADO.NET) ]
    學而不思則罔, 思而不學則殆.
    如果你一直都看不懂、不想學習看懂、抗拒看懂MSDN Library的話,那你最好放棄想要寫好程式這件事
    如果你自私地不肯回饋與分享,那別人為何要花時間回答你的問題?
    • 已標示為解答 小小郭 2009年12月31日 上午 01:19
    2009年12月29日 上午 10:09