기술 자료: 321686 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서는 다양 한 방법 사용 하 여 Microsoft SQL Server 데이터베이스에 Microsoft Excel 워크시트에서 데이터를 가져올 방법을 보여 줍니다.

기술 설명

이 문서의 예제를 사용 하 여 Excel 데이터를 가져오는.
  • SQL Server 데이터 변환 서비스 (DTS)
  • Microsoft SQL Server 2005 통합 서비스 (SSIS)
  • SQL Server 연결 된 서버
  • SQL Server 분산 쿼리
  • ActiveX 데이터 개체 (ADO) 및 SQL Server 대 한 Microsoft OLE DB 공급자
  • ADO 및 Microsoft OLE DB 공급자 4.0 Jet에 대 한

요구 사항

다음은 권장된 하드웨어, 소프트웨어, 네트워크 인프라 및 필요한 서비스 팩입니다.
  • Microsoft SQL Server 7.0 또는 Microsoft SQL Server 2000 또는 Microsoft SQL Server 2005의 인스턴스를 사용할 수
  • Visual Basic 사용 하는 ADO 샘플에 대 한 Microsoft Visual Basic 6.0
이 문서는 다음 항목에 익숙한 가정 합니다.
  • 데이터 변환 서비스
  • 연결 된 서버 및 분산된 쿼리
  • Visual Basic ADO 개발

샘플

가져오기와 추가 하기 비교

이 문서에서 사용 되는 예제 SQL 문 선택 하 여 새 SQL Server 테이블에 Excel 데이터를 가져오는 테이블 만들기 쿼리를 보여...에...구문은 다음과 같습니다. INSERT INTO를 사용 하 여 이러한 문을 추가 쿼리를 변환할 수 있습니다...선택...하는 동안 구문에서이 코드 샘플에 표시 된 대로 원본 및 대상 개체를 참조 하려면 계속 합니다.

DTS 또는 SSIS를 사용

SQL Server 테이블에 Excel 데이터를 가져오려면 SQL Server 데이터 변환 서비스 (DTS) 가져오기 마법사 또는 SQL Server 가져오기 및 내보내기 마법사를 사용할 수 있습니다. 달러 기호 ($)를 사용 하 여 추가 된 Excel 개체 이름은 워크시트 (예: Sheet1$)를 나타내고 달러 기호가 없는 일반 개체 이름은 Excel 나타내는 명명 된 범위를 반드시 Excel 원본 테이블을 선택 하 고 마법사를 단계별로.

연결된 된 서버 사용

쿼리를 단순화 하기 위해 Excel 통합 문서에서 SQL Server 연결 된 서버로 구성할 수 있습니다.자세한 내용은 Microsoft 기술 자료의 다음 문서를 아래 문서 번호를 클릭 합니다.
306397 방법: SQL Server 사용 하 여 Excel 연결 된 서버 및 분산 쿼리
다음은 고객 Excel 연결 된 서버 "EXCELLINK" 새 SQL Server 테이블에 XLImport1 이라는 워크시트에서 데이터를 가져옵니다.
SELECT * INTO XLImport1 FROM EXCELLINK...[Customers$]
				
다음과 같이 OPENQUERY를 사용 하 여 통과 방식으로 원본에 대해 쿼리를 실행할 수 있습니다.
SELECT * INTO XLImport2 FROM OPENQUERY(EXCELLINK,
    'SELECT * FROM [Customers$]')
				

분산된 쿼리 사용

Excel 통합 문서에 대 한 영구 연결을 연결 된 서버로 구성 하려면 특정 용도로 OPENDATASOURCE 또는 OPENROWSET 함수를 사용 하 여 데이터를 가져올 수 있습니다. 다음 코드 예제는 또한 새 SQL Server 테이블에 고객 Excel 워크시트에서 데이터를 가져올:
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를 사용 합니다.

SQL Server (SQLOLEDB)에 대 한 Microsoft OLE DB를 사용 하 여 ADO 응용 프로그램에서 SQL Server 연결 되어 있습니다 때에서 "분산된 쿼리" 동일한 구문을 사용할 수 있습니다는 분산된 쿼리를 사용 하 여 Excel 데이터를 SQL Server 가져올 섹션입니다.

다음 Visual Basic 6.0 코드 샘플 프로젝트 참조 ActiveX 데이터 개체 (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 공급자

이전 단원의 샘플 Excel-SQL 가져오기 대상에 연결할 SQLOLEDB 공급자와 함께 ADO를 사용 합니다. 또한 Excel 원본에 연결 하는 OLE DB 공급자를 Jet 4.0을 사용할 수 있습니다.

Jet 데이터베이스 엔진은 세 가지 형식의 하는 특수 한 구문을 사용 하 여 SQL 문에서 외부 데이터베이스를 참조할 수 있습니다.
  • [Microsoft Access 데이터베이스에 대 한 전체 경로].[테이블 이름]
  • [ISAM 이름;ISAM 연결 문자열].[테이블 이름]
  • [ODBC;ODBC 연결 문자열].[테이블 이름]
이 여기서는 서식 3 대상 SQL Server 데이터베이스에 ODBC 연결을 사용 합니다. ODBC 데이터 원본 이름 (DSN) 또는 DSN 없는 연결 문자열을 사용할 수 있습니다.
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 공급자를 사용 하 여 ADO 연결을 통해 SQL Server Excel 데이터를 가져오는 방법을 보여 줍니다.
    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 공급자를 지 원하는 다른 Microsoft Access 데이터베이스, 인덱싱된 순차적 액세스 메서드 (ISAM) ("바탕 화면") 데이터베이스를 또는 ODBC 데이터베이스에 Excel 데이터를 가져오려면 다음이 구문을 사용할 수도 있습니다.

문제 해결

  • 저장에 달러 기호 ($) 추가 된 Excel 개체 이름은 워크시트 (예: Sheet1$)를 나타내는 일반 개체 이름은 Excel 명명 된 범위를 나타냅니다.
  • 경우도 테이블 이름 대신 선택 쿼리를 사용 하 여 Excel 원본 데이터를 지정 하는 경우에 특히 대상 SQL Server 테이블의 열 알파벳 순서로 재배열 됩니다.Jet 공급자를 사용 하 여이 문제에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 아래 문서 번호를 클릭 합니다.
    299484 PRB: 열을 사전순 Access 테이블의 열을 검색 하려면 ADOX를 사용 하는 경우
  • Jet 공급자가 Excel 열에 혼합 된 텍스트 및 숫자 데이터를 결정, Jet 공급자 선택 "대부분" 데이터 형식 고 일치 하지 않는 값을 Null로 반환 합니다.이 문제를 해결 하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 아래 문서 번호를 클릭 합니다.
    194124 PRB: Excel 값 DAO OpenRecordset을 사용 하 여 NULL을 반환 합니다.

참조

Excel을 데이터 원본으로 사용 하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 아래 문서 번호를 클릭 합니다.
257819 방법: Visual Basic 또는 VBA에서 Excel 데이터를 사용 하 여 ADO를 사용 하 여
Excel로 데이터를 전송 하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 아래 문서 번호를 클릭 합니다.
295646 방법: 전송 데이터 ADO 데이터 원본에서 ADO 사용 하 여 Excel로
247412 정보: Visual Basic Excel로 데이터를 전송 하는 방법
246335 방법: 전송 데이터는 ADO 레코드 집합에서 excel 자동화로
319951 방법: SQL Server 데이터 변환 서비스를 사용 하 여 Excel로 데이터를 전송
306125 방법: SQL Server 데이터를 Microsoft Excel로 가져오기

속성

기술 자료: 321686 - 마지막 검토: 2013년 12월 4일 수요일 - 수정: 2.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Excel 2000 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
키워드:?
kbhowtomaster kbjet kbmt KB321686 KbMtko
기계 번역된 문서
이 문서는 Microsoft 기계 번역 소프트웨어를 이용하여 번역되었으며 Microsoft Community에 의한 Community Translation Framework(CTF) 기술 혹은 사람이 번역한 내용에 의하여 사후 편집될 수 있습니다. Microsoft는 Knowledge Base에 있는 모든 문서에 다양한 언어로 접근할 수 있도록 하기 위하여 기계 번역, 사람에 의한 번역 및 커뮤니티가 편집한 내용을 모두 제공합니다. 번역된 문서는 어휘, 구문 및/혹은 문법에 오류가 있을 수 있습니다. Microsoft는 번역 오류로 인한 부정확성, 오류 및/또는 손해와 이를 고객이 사용하는 데에 대하여 책임을 지지 않습니다.
이 문서의 영문 버전 보기:321686

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com