乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       freezn 2006-01-11

      如何將 Excel 數(shù)據(jù)導入 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 工作表導入到 Microsoft SQL Server 數(shù)據(jù)庫。

      技術說明

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

      要求

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

      示例

      導入與追加

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

      使用 DTS

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

      使用鏈接服務器

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

      使用分布式查詢

      如果不想將對 Excel 工作簿的永久連接配置為鏈接服務器,可以通過使用 OPENDATASOURCE 或 OPENROWSET 函數(shù)為特定目的導入數(shù)據(jù)。下列代碼示例也能將 Excel Customers 工作表數(shù)據(jù)導入新的 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

      當通過使用 Microsoft OLE DB for SQL Server (SQLOLEDB) 在 ADO 應用程序中連接到 SQL Server 時,可以使用與“使用分布式查詢” 一節(jié)中相同的“分布式查詢”語法將 Excel 數(shù)據(jù)導入 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 導入的目標。也可以使用 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)建到目標 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ù)導入到 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ù)導入其他 Microsoft Access 數(shù)據(jù)庫、索引順序存取方法 (ISAM)(“desktop”)數(shù)據(jù)庫或 ODBC 數(shù)據(jù)庫。

      疑難解答

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

      參考

      有關如何將 Excel 用作數(shù)據(jù)源的其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
      257819 (http://support.microsoft.com/kb/257819/) 如何在 Visual Basic 或 VBA 中使用 ADO 來處理 Excel 數(shù)據(jù)
      有關如何將數(shù)據(jù)傳輸?shù)?Excel 中的其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
      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ù)傳輸服務向 Excel 傳送數(shù)據(jù)
      306125 (http://support.microsoft.com/kb/306125/) 如何將數(shù)據(jù)從 Microsoft SQL Server 導入 Microsoft Excel
      http://support.microsoft.com/default.aspx?scid=kb;zh-cn;321686

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多