熟悉SQL Server 2000的數據庫管理員都知道,其DTS可以進行數據的導入導出,其實,我們也可以使用Transact-SQL語句進行導入導出操作。在Transact-SQL語句中,我們主要使用OpenDataSource函數、OPENROWSET 函數,關於函數的詳細說明,請參考SQL聯機幫助。利用下述方法,可以十分容易地實現SQL Server、Access、Excel數據轉換,詳細說明如下:
一、SQL Server 和Access的數據導入導出
常規的數據導入導出:
使用DTS向導遷移你的Access數據到SQL Server,你可以使用這些步驟:
○1在SQL Server企業管理器中的Tools(工具)菜單上,選擇Data Transformation
○2Services(數據轉換服務),然後選擇 czdImport Data(導入數據)。
○3在Choose a Data Source(選擇數據源)對話框中選擇Microsoft Access as the Source,然後鍵入你的.mdb數據庫(.mdb文件擴展名)的文件名或通過浏覽尋找該文件。
○4在Choose a Destination(選擇目標)對話框中,選擇Microsoft OLE DB Prov ider for SQL Server,選擇數據庫服務器,然後單擊必要的驗證方式。
○5在Specify Table Copy(指定表格復制)或Query(查詢)對話框中,單擊Copy tables(復制表格)。
○6在Select Source Tables(選擇源表格)對話框中,單擊Select All(全部選定)。下一步,完成。
Transact-SQL語句進行導入導出:
1.在SQL Server裡查詢Access數據:
SELECT *
FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',
''Data Source="c:\DB.mdb";User ID=Admin;PassWord='')...表名
2.將Access導入SQL Server
在SQL Server 裡運行:
SELECT *
INTO newtable
FROM OPENDATASOURCE (''Microsoft.Jet.OLEDB.4.0'',
''Data Source="c:\DB.mdb";User ID=Admin;PassWord='' )...表名
3.將SQL Server表裡的數據插入到Access表中
在SQL Server 裡運行:
insert into OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',
''Data Source=" c:\DB.mdb";User ID=Admin;PassWord='')...表名
(列名1,列名2)
select 列名1,列名2 from sql表
實例:
insert into OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',
''C:\db.mdb'';''admin'';'''', Test)
select id,name from Test
INSERT INTO OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', ''c:\trade.mdb''; ''admin''; '''', 表名)
SELECT *
FROM sqltablename
二、SQL Server 和Excel的數據導入導出
1、在SQL Server裡查詢Excel數據:
SELECT *
FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',
''Data Source="c:\book1.xls";User ID=Admin;PassWord=;Extended propertIEs=Excel 5.0'')...[Sheet1$]
下面是個查詢的示例,它通過用於 Jet 的 OLE DB 提供程序查詢 Excel 電子表格。
SELECT *
FROM OpenDataSource ( ''Microsoft.Jet.OLEDB.4.0'',
''Data Source="c:\Finance\account.xls";User ID=Admin;PassWord=;Extended propertIEs=Excel 5.0'')...xactions