SQL Server資料庫中批量匯入資料

2022-02-21 23:49:48 字數 2199 閱讀 1150

在軟體專案實施的時候,資料匯入一直是專案人員比較頭疼的問題。其實,在sql server中整合了很多成批匯入資料的方法。有些專案實施顧問頭疼的問題,在我們資料庫管理員眼中,是小菜一碟。現在的重點就是,如何讓使用者了解這些方法,讓資料匯入變得輕鬆一些。相信以下方法大家都用過了,溫故而知新哈,如果有更好的方法希望大家都提出來~

一、使用select into語句

若企業資料庫都採用的是sql server資料庫的話,則可以利用select into語句來實現資料的匯入。select into語句,他的作用就是把資料從另外乙個資料庫中查詢出來,然後加入到某個使用者指定的表中。

在使用這條語句的時候,需要注意幾個方面的內容。

1、需要在目的資料庫中先建立相關的表。如想把進銷存系統資料庫(sqlserver)中的產品資訊表(product)匯入到erp系統中的產品資訊表(m_product)中。則前期是在erp系統的資料庫中已經建立了這張產品資訊表。

2、這種方法只複製表中的資料,而不複製表中的索引。如在進銷存系統資料中的產品資訊表中,在產品編號、產品種類等字段上建立了索引。則利用select into語句把資料複製到erp系統的表中的時候,只是複製了資料內容的本身,而不會複製索引等資訊。

3、這條語句使用具有侷限性。一般情況下,這只能夠在sql server資料庫中採用。不過,對於sql server不同版本的資料庫,如2008或者2003,還都是相容的。若需要匯入的物件資料庫不是sql server的,則需要採用其他的方法。

4、採用這條語句的話,在目的表中必須不存在資料。否則的話,目的表中的資料會被清除。也就是說,這個語句不支援表與表資料的合併。在sql server中,有一條類似的語句,可以實現這個功能。這條語句就是:insert into。他的作用就是把另外一張表中的資料插入到當前表中。若使用者想要的時表與表資料的合併,則可以採用這條語句。兩者不能夠混淆使用,否則的話,很容 易導致資料的丟失。

5、以上兩條語句都支援相容的不同型別的資料型別。如在原標中,某個欄位的資料型別是整數型,但是在目的表中這個欄位的資料型別則是浮點型,只要這個兩個資料型別本來就相容的,則在匯入的時候,資料庫是允許的。

我們想複製表a的所有欄位名到乙個新錶b的時候,可以使用以下方法:

1)select * into b from a where 1<>1 (僅sql server可用)

2)select top 0 * into b from a

二、利用excel等中間工具進行控制

雖然第一種方法操作起來比較簡單,但是其也有一些缺點。如他只支援同一種型別的資料庫;不能夠對資料進行過多的干預等等。一般情況下,若使用者原資料準確度比較高,不需要過多的修改就可以直接拿來用的話,則筆者就已採用第一種方式。

然後,再在excle中,對記錄進行修改。由於excle是乙個很強的**處理軟體,所以,其資料修改,要比在資料庫中直接修改來得方便,來得簡 單。如可以利用按時間排序等功能,把一些長久不用的記錄清楚掉。也可以利用替換等功能,把一些不規範的字元更改掉。這些原來在資料庫中比較複雜的任務,在 excle等工具中都可以輕鬆的完成。

等到表中的內容修改無誤後,資料庫管理員就可以把excle**中的檔案直接匯入到sql server資料庫中。由於sql server與excel是同乙個父母生的,所以,他們之間的相容性很好。在sql server中提供了直接從excel檔案中匯入資料的工具。

exec sp_addlinkedserver '

excel

','ex

','microsoft.jet.oledb.4.0

','c:\documents and settings\administrator\桌面\abc.xls

',null,'

excel 5.0'--

建立乙個名為excel的連線服務,可以檢視到abc.xls裡面的內容

exec sp_addlinkedsrvlogin '

excel

', '

false

', '

sa', '

admin

', null

--建立乙個對映以允許 sql server 登入 sa 使用 excel 登入 admin 連線到 excel,並且沒有密碼

--exec sp_dropserver 'excel' --刪除連線

select

*from excel...sheet1$ --

檢視excel的sheet1表裡面的內容

SQL Server資料庫中批量替換資料的方法

sql server資料庫操作中,我們可能會根據某寫需要去批量替換資料,那麼如何批量修改替換資料呢?本文我們就介紹這一部分內容,接下來就讓我們一起來了解一下吧 sql server資料庫操作中,我們可能會根據某寫需要去批量替換資料,那麼如何批量修改替換資料呢?本文我們就介紹這一部分內容,接下來就讓我...

Sqlserver資料庫批量匯入資料

最近抽空整理了一下專案中運用到的公共方法,打算增加自己的dll檔案的內容。突然發現sqlserver資料批量插入的乙個東西。好像我的dll檔案裡面沒有,所以就加上了。這裡說明一下 專案中所有的公共檔案都是我自己建的,公共類庫中的大部分方法都是我自己寫的,不存在什麼洩露 不好的影響。並且這些 稀鬆平常...

C 批量更新sql server資料庫資料

批量更新有兩種策略 第一種方式 拼接所有更新字串,在資料庫一次性執行,這樣減少資料更新時頻繁的連線斷開資料庫。第二種方式 把要更新的資料寫入資料庫全域性臨時表,然後利用sql語句更新,最後把原表中不存在的資料獲取到再批量寫入。以下是第二種方式的實現。該方式中有投機取巧的嫌疑,但是確實能對在單機大批量...