當前位置:成語大全網 - 書法字典 - SQLServer中導入和導出數據的三種方式(1)

SQLServer中導入和導出數據的三種方式(1)

當我們建立壹個數據庫,想要把分散在這個新數據庫各處的不同類型的數據庫進行分類匯總,特別是對數據進行檢查、凈化、轉換的時候,就會面臨很大的挑戰。好在SQL Server為我們提供了強大而豐富的數據導入導出功能,可以在導入導出的同時靈活處理數據。

在SQL Server中導入和導出數據主要有三種方式:使用Transact-SQL處理數據;調用命令行工具BCP處理數據;使用數據轉換服務(DTS)來處理數據。這三種方法各有特點。我們來比較壹下他們的主要特點。

壹、使用方法的比較

1.使用Transact-SQL導入和導出數據

我們不難看出,Transact-SQL方法是壹種通過SQL語句從相同或不同類型的數據庫中導入、導出或收集數據的方法。在不同的SQL Server數據庫之間導入和導出數據將非常容易。通常可以使用SELECT INTO FROM和INSERT INTO。使用SELECT INTO FROM時,INTO後面的表必須存在,也就是說,它的作用是在導入數據之前建立壹個空表,然後將源表中的數據導入到新創建的空表中,相當於復制了表(並不復制表的索引等信息)。INSERT INTO的功能是將源數據插入到現有的表中,可用於數據合並。如果要更新現有記錄,可以使用UPDATE。

從表1中選擇*進入表2

-表1和表2具有相同的表結構。

插入表2從表3中選擇*

-表2和表3具有相同的表結構。

在異構數據庫之間導入和導出數據時,情況會變得復雜得多。首先要解決的問題是如何打開非SQL Server數據庫。

SQL Server中提供了兩個函數,用於根據OLE DB訪問接口打開和操作各種類型的數據庫。這兩個函數是OPENDATASOURCE和OPENROWSET。它們的功能基本相同,主要有兩個區別。

(1)的調用方式不同。

OPENDATASOURCE有兩個參數,即OLE DB Provider和連接字符串。使用OPENDATASOURCE只等同於引用數據庫或服務(對於SQL Server、Oracle等數據庫)。如果要引用數據表或視圖,必須在OPENDATASOURCE(...).

在SQL Server中通過OPENDATASOURCE查詢Access數據庫的abc.mdb中的table1表。

SELECT * FROM open data source(' Microsoft。Jet.OLEDB.4.0 ',

提供商=微軟。Jet . OLEDB.4.0數據源= abc.mdb持續安全性

info = False’)...

表1

OPENROWSET相當於壹個記錄集,可以直接用作表或視圖。

在SQL Server中通過OPENROWSETE查詢Access數據庫的abc.mdb中的table1表。

SELECT * FROM OPENROWSET(' Microsoft。Jet.OLEDB.4.0 ',' ABC . MDB ';

admin ';',' SELECT * FROM table1 ')