none
載入EXCEL檔更新TABLE的Transact-SQL(已解決) RRS feed

  • 問題

  • 謝謝小朱, 問題已解決.

     

    環境: windows 2000 server + MS SQL 2000 server

     

    某位USER有一個需求, 想用他做好的EXCEL檔內的資料,  更新至SQL中的某個TABLE,

    於是我併出(就是看範例東湊西湊啦)了一段Transact-SQL如下:

     

    程式碼區塊

    SELECT * INTO XLImport3 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
    'Data Source=C:\book1.xls;Extended Properties=Excel 8.0')...[Sheet1$]

     

    declare @F1 nvarchar(255) ,  @F2 float,   @F3 float

    declare test_cursor cursor for select * from XLImport3

    open test_cursor


    fetch next from test_cursor into @F1,@F2,@F3

     

    while @@fetch_status=0
    begin
     
      if (@F1<>'') begin
         update test set LV_PR=@F2,COS_R1=@F3 where (ORD_NO=@F1)     
      end

    fetch next from test_cursor into @F1,@F2,@F3

     

    end
    close test_cursor
    deallocate test_cursor
    drop table XLImport3

     

     

     

    經過測試,執行OK,  但我希望有沒有辦法不要產生出 XLImport3 這個暫存的TABLE ?

     

     

     

    2008年1月11日 上午 12:38

解答

  • 程式碼區塊

    declare @F1 nvarchar(255) ,  @F2 float,   @F3 float

    declare test_cursor cursor for

        SELECT *  FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
        'Data Source=C:\book1.xls;Extended Properties=Excel 8.0')...[Sheet1$]

     

    open test_cursor


    fetch next from test_cursor into @F1,@F2,@F3

     

    while @@fetch_status=0
    begin
     
      if (@F1<>'') begin
         update test set LV_PR=@F2,COS_R1=@F3 where (ORD_NO=@F1)     
      end

    fetch next from test_cursor into @F1,@F2,@F3

     

    end
    close test_cursor
    deallocate test_cursor

     

     

    2008年1月11日 上午 10:15
    版主