国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
如何將 Excel 數(shù)據(jù)導(dǎo)入 SQL Server

如何將 Excel 數(shù)據(jù)導(dǎo)入 SQL Server

select * from
OPENROWSET(‘MICROSOFT.JET.OLEDB.4.0‘
,‘Excel 5.0;HDR= S;IMEX=2;DATABASE=X:\EXCEL文件名.xls‘,工作表名$)

select * into test_111 from
OPENROWSET(‘MICROSOFT.JET.OLEDB.4.0‘
,‘Excel 5.0;HDR= S;DATABASE=c:\test.xls‘ --c:\test.xls是excel文件名
,Products$)  

 

文章編號:321686
最后修改:2004年5月31日
修訂:1.0

概要

本文循序漸進地演示如何用不同的方法將數(shù)據(jù)從 Microsoft Excel 工作表導(dǎo)入到 Microsoft SQL Server 數(shù)據(jù)庫。

技術(shù)說明

本文中的示例使用以下工具導(dǎo)入 Excel 數(shù)據(jù):
SQL Server 數(shù)據(jù)傳輸服務(wù) (DTS)
SQL Server 鏈接服務(wù)器
SQL Server 分布式查詢
ActiveX 數(shù)據(jù)對象 (ADO) 和 Microsoft OLE DB Provider for SQL Server
ADO 和 Microsoft OLE DB Provider for Jet 4.0

要求

下面的列表列出了推薦使用的硬件、軟件、網(wǎng)絡(luò)架構(gòu)以及所需的服務(wù)包:
Microsoft SQL Server 7.0 或 Microsoft SQL Server 2000 的可用實例
Microsoft Visual Basic 6.0(針對使用 Visual Basic 的 ADO 示例)
本文的部分內(nèi)容假定您熟悉下列主題:
數(shù)據(jù)傳輸服務(wù)
鏈接服務(wù)器和分布式查詢
Visual Basic 中的 ADO 開發(fā)

示例

導(dǎo)入與追加

本文使用的示例 SQL 語句演示了“創(chuàng)建表”查詢。該查詢通過使用 SELECT...INTO...FROM 語法將 Excel 數(shù)據(jù)導(dǎo)入新的 SQL Server 表。如這些代碼示例所示,在繼續(xù)引用源對象和目標(biāo)對象時,可以通過使用 INSERT INTO...SELECT...FROM 語法將這些語句轉(zhuǎn)換成追加查詢。

使用 DTS

可以使用 SQL Server 數(shù)據(jù)傳輸服務(wù) (DTS) 導(dǎo)入向?qū)?Excel 數(shù)據(jù)導(dǎo)入 SQL Server 表。在逐步執(zhí)行向?qū)Р⑦x擇 Excel 源表時,要記住附加美元符號 ($) 的 Excel 對象名稱代表工作表(例如,Sheet1$),而沒有美元符號的普通對象名稱代表 Excel 指定的范圍。

使用鏈接服務(wù)器

要簡化查詢,可以將 Excel 工作簿配置為 SQL Server 中的鏈接服務(wù)器。 有關(guān)其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應(yīng)的文章:
306397 (http://support.microsoft.com/kb/306397/) 如何結(jié)合 SQL Server 鏈接的服務(wù)器和分布式查詢使用 Excel
下列代碼將 Excel 鏈接服務(wù)器“EXCELLINK”上的 Customers 工作表數(shù)據(jù)導(dǎo)入新的名為 XLImport1 的 SQL Server 表:
SELECT * INTO XLImport1 FROM EXCELLINK...[Customers$]				
還可以通過按照以下方式使用 OPENQUERY 以全通過方式對源數(shù)據(jù)執(zhí)行查詢:
SELECT * INTO XLImport2 FROM OPENQUERY(EXCELLINK,    ‘SELECT * FROM [Customers$]‘)				

使用分布式查詢

如果不想將對 Excel 工作簿的永久連接配置為鏈接服務(wù)器,可以通過使用 OPENDATASOURCE 或 OPENROWSET 函數(shù)為特定目的導(dǎo)入數(shù)據(jù)。下列代碼示例也能將 Excel Customers 工作表數(shù)據(jù)導(dǎo)入新的 SQL Server 表:
SELECT * INTO XLImport3 FROM OPENDATASOURCE(‘Microsoft.Jet.OLEDB.4.0‘,‘Data Source=C:\test\xltest.xls;Extended Properties=Excel 8.0‘)...[Customers$]SELECT * INTO XLImport4 FROM OPENROWSET(‘Microsoft.Jet.OLEDB.4.0‘,‘Excel 8.0;Database=C:\test\xltest.xls‘, [Customers$])SELECT * INTO XLImport5 FROM OPENROWSET(‘Microsoft.Jet.OLEDB.4.0‘,‘Excel 8.0;Database=C:\test\xltest.xls‘, ‘SELECT * FROM [Customers$]‘)				

使用 ADO 和 SQLOLEDB

當(dāng)通過使用 Microsoft OLE DB for SQL Server (SQLOLEDB) 在 ADO 應(yīng)用程序中連接到 SQL Server 時,可以使用與“使用分布式查詢” 一節(jié)中相同的“分布式查詢”語法將 Excel 數(shù)據(jù)導(dǎo)入 SQL Server。

下列 Visual Basic 6.0 代碼示例要求添加對 ActiveX 數(shù)據(jù)對象 (ADO) 的項目引用。此代碼示例還演示了如何在 SQLOLEDB 連接上使用 OPENDATASOURCE 和 OPENROWSET。
    Dim cn As ADODB.Connection    Dim strSQL As String    Dim lngRecsAff As Long    Set cn = New ADODB.Connection    cn.Open "Provider=SQLOLEDB;Data Source=<server>;" & _        "Initial Catalog=<database>;User ID=<user>;Password=<password>"    ‘Import by using OPENDATASOURCE.    strSQL = "SELECT * INTO XLImport6 FROM " & _        "OPENDATASOURCE(‘Microsoft.Jet.OLEDB.4.0‘, " & _        "‘Data Source=C:\test\xltest.xls;" & _        "Extended Properties=Excel 8.0‘)...[Customers$]"    Debug.Print strSQL    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords    Debug.Print "Records affected: " & lngRecsAff    ‘Import by using OPENROWSET and object name.    strSQL = "SELECT * INTO XLImport7 FROM " & _        "OPENROWSET(‘Microsoft.Jet.OLEDB.4.0‘, " & _        "‘Excel 8.0;Database=C:\test\xltest.xls‘, " & _        "[Customers$])"    Debug.Print strSQL    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords    Debug.Print "Records affected: " & lngRecsAff    ‘Import by using OPENROWSET and SELECT query.    strSQL = "SELECT * INTO XLImport8 FROM " & _        "OPENROWSET(‘Microsoft.Jet.OLEDB.4.0‘, " & _        "‘Excel 8.0;Database=C:\test\xltest.xls‘, " & _        "‘SELECT * FROM [Customers$]‘)"    Debug.Print strSQL    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords    Debug.Print "Records affected: " & lngRecsAff    cn.Close    Set cn = Nothing				

使用 ADO 和 Jet Provider

上一節(jié)中的示例使用 ADO 和 SQLOLEDB Provider 連接到從 Excel 到 SQL 導(dǎo)入的目標(biāo)。也可以使用 OLE DB Provider for Jet 4.0 來連接到 Excel 源。

Jet 數(shù)據(jù)引擎可以通過使用具有三種不同格式的特殊語法來在 SQL 語句中引用外部數(shù)據(jù)庫:
[Full path to Microsoft Access database].[Table Name]
[ISAM Name;ISAM Connection String].[Table Name]
[ODBC;ODBC Connection String].[Table Name]
本節(jié)使用第三種格式創(chuàng)建到目標(biāo) SQL Server 數(shù)據(jù)庫的 ODBC 連接??梢允褂?ODBC 數(shù)據(jù)源名稱 (DSN) 或者 DSN-less 連接字符串:
DSN:    [odbc;DSN=<DSN name>;UID=<user>;PWD=<password>]DSN-less:   [odbc;Driver={SQL Server};Server=<server>;Database=<database>;       UID=<user>;PWD=<password>]				
下列 Visual Basic 6.0 代碼示例要求添加對 ADO 的項目引用。此代碼示例演示了如何使用 Jet 4.0 Provider 通過 ADO 連接將 Excel 數(shù)據(jù)導(dǎo)入到 SQL Server。
    Dim cn As ADODB.Connection    Dim strSQL As String    Dim lngRecsAff As Long    Set cn = New ADODB.Connection    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _        "Data Source=C:\test\xltestt.xls;" & _        "Extended Properties=Excel 8.0"    ‘Import by using Jet Provider.    strSQL = "SELECT * INTO [odbc;Driver={SQL Server};" & _        "Server=<server>;Database=<database>;" & _        "UID=<user>;PWD=<password>].XLImport9 " & _        "FROM [Customers$]"    Debug.Print strSQL    cn.Execute strSQL, lngRecsAff, adExecuteNoRecords    Debug.Print "Records affected: " & lngRecsAff    cn.Close    Set cn = Nothing				
也可以通過使用該語法(Jet Provider 支持)將 Excel 數(shù)據(jù)導(dǎo)入其他 Microsoft Access 數(shù)據(jù)庫、索引順序存取方法 (ISAM)(“desktop”)數(shù)據(jù)庫或 ODBC 數(shù)據(jù)庫。

疑難解答

記住附加美元符號 ($) 的 Excel 對象名稱代表工作表(例如:Sheet1$),而普通對象名稱代表 Excel 指定的范圍。
在某些環(huán)境中,特別是用表名稱取代 SELECT 查詢指派 EXCEL 源數(shù)據(jù)時,目標(biāo) SQL Server 表中的列會按照字母順序重排。有關(guān) Jet Provider 中存在的這一問題的其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應(yīng)的文章:
299484 (http://support.microsoft.com/kb/299484/) PRB:使用 ADOX 檢索 Access 表的列時,列按字母順序排列
當(dāng) Jet Provider 確定一個 Excel 列包含了混合文本和數(shù)值數(shù)據(jù)時,Jet Provider 會選擇“majority”數(shù)據(jù)類型并將不匹配的值以 NULL 形式返回。有關(guān)如何解決這個問題的其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應(yīng)的文章:
194124 (http://support.microsoft.com/kb/194124/) PRB:使用 DAO OpenRecordset 時 Excel 返回值為 NULL

參考

有關(guān)如何將 Excel 用作數(shù)據(jù)源的其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應(yīng)的文章:
257819 (http://support.microsoft.com/kb/257819/) 如何在 Visual Basic 或 VBA 中使用 ADO 來處理 Excel 數(shù)據(jù)
有關(guān)如何將數(shù)據(jù)傳輸?shù)?Excel 中的其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應(yīng)的文章:
295646 (http://support.microsoft.com/kb/295646/) 如何使用 ADO 將數(shù)據(jù)從 ADO 數(shù)據(jù)源傳輸?shù)?Excel
247412 (http://support.microsoft.com/kb/247412/) INFO:將數(shù)據(jù)從 Visual Basic 傳輸?shù)?Excel 的方法
246335 (http://support.microsoft.com/kb/246335/) 如何使用“自動化”功能將數(shù)據(jù)從 ADO 記錄集傳輸?shù)?Excel
319951 (http://support.microsoft.com/kb/319951/) 如何通過 SQL Server 數(shù)據(jù)傳輸服務(wù)向 Excel 傳送數(shù)據(jù)
306125 (http://support.microsoft.com/kb/306125/) 如何將數(shù)據(jù)從 Microsoft SQL Server 導(dǎo)入 Microsoft Excel
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;321686
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
數(shù)據(jù)庫中SQL Server和Access、Excel數(shù)據(jù)傳輸簡單總結(jié)
向sqlserver 2008導(dǎo)入access、excel數(shù)據(jù)
SQL Server與Excel Access之間數(shù)據(jù)的導(dǎo)入導(dǎo)出
SQL Server數(shù)據(jù)導(dǎo)入導(dǎo)出的幾種方法
使用sql語句向Excel查詢和更新
SQL 數(shù)據(jù)的導(dǎo)入導(dǎo)出,對遠(yuǎn)程(MSsql,OracleAccess,)數(shù)據(jù)庫的操作以及讀取Excel,txt文件中的數(shù)據(jù)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服