国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL Server數據庫中批量導入數據的2種方法

2024-08-31 01:03:12
字體:
來源:轉載
供稿:網友
數據導入一直是項目人員比較頭疼的問題。其實,在SQL Server中集成了很多成批導入數據的方法,接下來為大家介紹下常用的四種批量導入數據的方法,感興趣的各位可以參考下哈
 

在軟件項目實施的時候,數據導入一直是項目人員比較頭疼的問題。其實,在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中。有些數據庫,如 Oracle數據庫,他不支持Excle格式。但是,我們可以把它導為CSV格式的文件。這種文件Excle也可以打得開。

然后,再在Excle中,對記錄進行修改。由于Excle是一個很強的表格處理軟件,所以,其數據修改,要比在數據庫中直接修改來得方便,來得簡 單。如可以利用按時間排序等功能,把一些長久不用的記錄清楚掉。也可以利用替換等功能,把一些不規范的字符更改掉。這些原來在數據庫中比較復雜的任務,在 Excle等工具中都可以輕松的完成。

等到表中的內容修改無誤后,數據庫管理員就可以把Excle表格中的文件直接導入到SQL Server數據庫中。由于SQL Server與Excel是同一個父母生的,所以,他們之間的兼容性很好。在Sql Server中提供了直接從Excel文件中導入數據的工具。

雖然這要借助中間工具導入數據,但是,因為其處理起來方便、直觀,所以,我在大部分時候都是采用這種方式。最后,再附上如何讓Excel表格在數據庫中能查看到的相關代碼:
 

  1. exec sp_addlinkedserver 'excel','ex','Microsoft.Jet.OLEDB.4.0','C:/Documents and Settings/Administrator/桌面/abc.xls',null,'Excel 5.0' --創建一個名為excel的連接服務,可以查看到abc.xls里面的內容 
  2.  
  3. EXEC sp_addlinkedsrvlogin 'excel''false''sa''Admin', NULL --創建一個映射以允許 SQL Server 登錄 sa 使用 Excel 登錄 Admin 連接到 excel,并且沒有密碼 
  4.  
  5. --exec sp_dropserver 'excel' --刪除連接 
  6.  
  7. select * from excel...Sheet1$ --查看Excel的Sheet1表里面的內容 
?
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 茶陵县| 健康| 公主岭市| 太保市| 东兴市| 竹溪县| 上虞市| 汉沽区| 余干县| 保靖县| 理塘县| 冀州市| 永济市| 滕州市| 盐边县| 嘉义县| 山阳县| 梁河县| 汤阴县| 集安市| 祁连县| 栖霞市| 建始县| 锦州市| 布拖县| 扎鲁特旗| 双峰县| 大荔县| 辽宁省| 巴林右旗| 建德市| 兴山县| 抚远县| 响水县| 报价| 丹巴县| 贡山| 穆棱市| 云安县| 贺州市| 江孜县|