Excel 스프레드 시트 열을 SQL Server 데이터베이스로 가져 오기
SQL Server 2008 데이터베이스 테이블로 선택한 열을 가져옵니다. Excel 스프레드 시트가 있습니다. 마법사는 그 옵션을 제공하지 않습니다.
쉬운 코드 옵션이 있습니까?
Sql Server 2005 데이터베이스에 연결되면 개체 탐색기 창에서 테이블을 데이터베이스를 마우스 오른쪽 단추로 클릭합니다. 작업-> 데이터 가져 오기를 선택합니다. 이것은 "매핑"할 수 있습니다. 필요할 때 다시 사용할 수 있습니다.
Microsoft는 몇 가지 방법을 제안 합니다.
- SQL Server 데이터 변환 서비스 (DTS)
- Microsoft SQL Server 2005 통합 서비스 (SSIS)
- SQL Server 수치 서버
- SQL Server 분산 쿼리
- ADO (ActiveX 데이터 개체) 및 SQL Server 용 Microsoft OLE DB
- ADO 및 Jet 4.0 용 Microsoft OLE DB
마법사 (DTS)가 작동하지 않는 경우 (그리고 그래야 생각합니다) http://www.devasp.net/net/articles/display/771.html 과 같이 기본적으로 다음과 같은 작업을 제안 할 수 있습니다.
INSERT INTO [tblTemp] ([Column1], [Column2], [Column3], [Column4])
SELECT A.[Column1], A.[Column2], A.[Column3], A.[Column4]
FROM OPENROWSET
('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\Excel.xls;HDR=YES', 'select * from [Sheet1$]') AS A;
이 먼 길처럼 들릴 수있는 Excel을 사용하여 INSERT SQL 코드 를 생성 하여 쿼리 분석기에 넣어 테이블을 만들 수 있습니다.
Excel 파일이 서버에 없기 때문에 마법사를 사용할 수없는 경우 잘 작동합니다.
다음과 같이 OPENROWSET을 사용할 수 있습니다.
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;IMEX=1;HDR=NO;DATABASE=C:\FILE.xls', 'Select * from [Sheet1$]'
경로가 로컬 시스템이 아닌 서버의 경로인지 확인하십시오.
go
sp_configure 'show advanced options',1
reconfigure with override
go
sp_configure 'Ad Hoc Distributed Queries',1
reconfigure with override
go
SELECT * into temptable
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\Documents and Settings\abhisharma\Desktop\exl\ImportExcel2SQLServer\ImportExcel2SQLServer\example.xls;IMEX=1',
'SELECT * FROM [Sheet1$]')
select * from temptable
또 다른 옵션은 Excel에서 VBA를 사용하고 매크로를 작성하여 스프레드 시트 데이터를 구문 분석하고 SQL에 쓰는 것입니다.
한 가지 예는 다음과 가변합니다. http://www.ozgrid.com/forum/showthread.php?t=26621&page=1
Sub InsertARecord()
Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim stCon As String, stSQL As String
Set cnt = New ADODB.Connection
Set rst = New ADODB.Recordset
stCon = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=JOEY"
cnt.ConnectionString = stCon
stSQL = "INSERT INTO MyTable (Price)"
stSQL = stSQL & "VALUES (500)"
cnt.Open
rst.Open stSQL, cnt, adOpenStatic, adLockReadOnly, adCmdText
If CBool(rst.State And adStateOpen) = True Then rst.Close
Set rst = Nothing
If CBool(cnt.State And adStateOpen) = True Then cnt.Close
Set cnt = Nothing
End Sub
'마법사'에 의해 'SQL Server 가져 오기 및 내보내기 마법사'에 대해 이야기하고 가정합니다. (저는 또한 꽤 새롭기 때문에 대부분의 질문을 이해하지 대부분의 대답을 이해하지만 질문을받는 것). 스프레드 시트 나 복사본을보다 수없는 가져 오기 오지는 열을 삭제 한 다음 마법사를 사용 하시겠습니까?
필자는 항상 필요한 작업을 수행 할 수있는 능력을 발견하고 SQL Server 2000에서만 사용하고 있습니다 (다른 버전의 차이점은 확실하지 않음).
편집 : 사실 지금보고 있는데 기존 테이블의 행에 매핑 할 열을 선택할 수있는 것 같습니다. '소스 테이블 및보기 선택'화면에서 사용중인 데이터 시트를 확인하고 '대상'을 선택한 다음 '편집 ...'버튼을 클릭합니다. 여기에서 Excel 열과이를 매핑 할 테이블 열을 선택할 수 있습니다.
유효성 검사를 포함하는 데스크톱 인터페이스가있는 시각적 도구를 원한다면이 Excel 도구를 좋아할 것입니다. 이 도구를 사용하여 다중 사용자 데이터 편집 작업을 만들거나 모든 소스에서 SQL Server에 데이터를 붙여 넣을 수도 있습니다.
Excel 스프레드 시트를 확인하고 SQL Server 데이터베이스로 가져 오는 방법 :
Microsoft Access는 또 다른 옵션입니다. Excel 스프레드 시트를 (사용 가능한 마법사)로 가져오고 ODBC를 통해 SQL Server 데이터베이스 테이블에 연결 하는 Access 데이터베이스를 컴퓨터에 로컬로 가질 수 있습니다 .
그런 다음 Excel 스프레드 시트의 데이터를 SQL Server 테이블에 추가하는 액세스 쿼리를 디자인 할 수 있습니다.
내가 사용한 최고의 도구는 http://tools.perceptus.ca/text-wiz.php?ops=7입니다. 사용해 보셨습니까?
나는 그것이 당신을 도울 것이라고 생각합니다
http://social.msdn.microsoft.com/Forums/en-US/sqlgetstarted/thread/78f8e980-0bb6-4a48-b1b1-5f65bca1d511을 방문 하십시오.
가져 오기 마법사는 해당 옵션을 제공합니다. 옵션을 사용하여 가져올 데이터에 대한 고유 한 쿼리를 작성하거나 데이터 복사 옵션을 사용하고 "매핑 편집"단추를 사용하여 가져 오지 않을 열을 무시할 수 있습니다.
Excel + SQLCMD + Perl = exceltomssqlinsert
그리고 당신은 당신의 엑셀을 MSSQL db에 대한 프런트 엔드로 사용할 수 있습니다 ... 생성 된 각 SQL 삽입 파일의 시작 부분에있는 자르기 테이블에 유의하십시오 ...
DTS (현재 SQL 서버 가져 오기 및 내보내기 마법사라고 함)를 사용했습니다. 나는 Sql 2008에서도 훌륭하게 작동하고 2010 (14.0)을 능가 하는이 튜토리얼 을 사용했습니다.
이게 도움이 되길 바란다
-디
먼저 32 비트 버전의 가져 오기 마법사를 사용해보십시오. 이것은 훨씬 더 많은 지원되는 가져 오기 형식을 보여줍니다.
배경 : 모두 Office (런타임 엔진) 설치에 따라 다릅니다.
Office 2007 이상이 설치되어 있지 않은 경우 가져 오기 마법사 (32 비트)를 사용하여 Excel 97-2003 (.xls) 파일 만 가져올 수 있습니다.
Office 2010 및 geater (64 비트도 제공, 권장되지 않음)가 설치되어있는 경우 가져 오기 마법사는 Excel 2007 + (. xlsx) 파일도 지원합니다.
런타임에 대한 개요를 보려면 'Microsoft.ACE.OLEDB.12.0'공급자가 로컬 컴퓨터에 등록되지 않음을 참조하십시오.
참고 URL : https://stackoverflow.com/questions/375991/import-excel-spreadsheet-columns-into-sql-server-database
'ProgramingTip' 카테고리의 다른 글
C 표준 라이브러리와 C POSIX 라이브러리의 차이점 (0) | 2020.11.25 |
---|---|
Java에 SoftHashMap이 있습니까? (0) | 2020.11.25 |
C ++에서 환경 변수에 액세스 (0) | 2020.11.24 |
WCFTestClient HTTP 요청이 클라이언트 인증 체계 '익명'으로 인증되지 않은 것입니다. (0) | 2020.11.24 |
Reflection을 사용하여 내부 클래스에 액세스하는 방법 (0) | 2020.11.24 |