SQL Server 데이터베이스로 Excel 스프레드시트 열 가져오기
SQL Server 2008 데이터베이스 테이블로 선택 열을 Import하는 Excel 스프레드시트가 있습니다.마법사는 이 옵션을 제공하지 않았습니다.
쉬운 코드 옵션이 있습니까?
SQL Server 2005 데이터베이스에 연결되면 Object Explorer 창에서 테이블을 가져올 데이터베이스를 마우스 오른쪽 버튼으로 클릭합니다.[태스크] -> [데이터 Import]를 선택합니다.이것은 간단한 도구이며, 수신 데이터를 적절한 표로 '매핑'할 수 있습니다.필요할 때 스크립트를 저장하여 다시 실행할 수 있습니다.
Microsoft 에서는, 다음의 몇개의 방법을 추천합니다.
- SQL Server 데이터 변환 서비스(DTS)
- Microsoft SQL Server 2005 통합 서비스(SSIS)
- SQL Server 링크 서버
- SQL Server 분산 쿼리
- ActiveX Data Objects(ADO) 및 Microsoft OLE DB Provider for SQL Server
- Jet 4.0용 ADO 및 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을 사용하여 Query Analyzer에 붙여넣어 테이블을 작성할 수 있는 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
'wiz'라고 하면 'SQL Server Import and Export Wizard'를 말하는 것 같습니다.(또한 저는 초보라서 대부분의 질문은 물론 대부분의 답변도 이해할 수 없습니다만, 이번 것은 알 수 있을 것 같습니다.)스프레드시트나 복사본을 가져올 수 없는 경우 가져오지 않을 열을 삭제한 다음 마법사를 사용하십시오.
항상 필요한 기능을 이용할 수 있었고 SQL Server 2000에서만 사용할 수 있습니다(다른 버전이 어떻게 다른지 잘 모르겠습니다).
편집: 실제로 지금 보고 있는데 기존 테이블의 어떤 행에 매핑할 것인지 선택할 수 있는 것 같습니다.'Select Source Tables and Views' 화면에서 사용 중인 데이터시트를 확인하고 'Destination'을 선택한 다음 'Edit...' 버튼을 클릭합니다.여기서 Excel 열과 매핑할 테이블 열을 선택할 수 있습니다.
검증을 포함한 데스크톱인터페이스를 갖춘 비주얼 툴이 필요한 경우.이 Excel 툴이 마음에 드실 겁니다.또한 이 도구를 사용하여 여러 사용자 데이터 편집 태스크를 생성하거나 임의의 원본에서 SQL 서버에 데이터를 붙여넣을 수도 있습니다.
Excel 스프레드시트를 검증하고 SQL Server 데이터베이스로 Import하는 방법:
Microsoft Access도 다른 옵션입니다.Excel 스프레드시트를 Import하여 ODBC를 통해 SQL Server 데이터베이스 테이블에 링크하는 액세스 데이터베이스를 머신에 로컬로 배치할 수 있습니다.
그런 다음 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
Excel을 MSQL db의 프런트 엔드로 사용할 수 있습니다.생성된 각 SQL 삽입 파일의 선두에 있는 잘라내기 테이블을 확인합니다.
DTS(현재는 SQL 서버 가져오기 및 내보내기 마법사)를 사용했습니다.이 튜토리얼은 SQL 2008 및 Excel 2010(14.0)에서도 유효했습니다.
이게 도움이 됐으면 좋겠다
-D
먼저 Import Wizard의 32비트 버전을 사용해 보십시오.이것은 지원되는 Import 형식을 훨씬 더 많이 보여줍니다.
배경:모두 Office(Runtimes Engine) 설치에 따라 달라집니다.
Office 2007 이후가 설치되어 있지 않은 경우 Import Wizard(32비트)에서는 Excel 97-2003(.xls) 파일만 Import할 수 있습니다.
Office 2010 및 geater(권장되지 않는 64비트)가 설치되어 있는 경우 Import Wizard는 Excel 2007+(.xlsx) 파일도 지원합니다.
런타임의 개요에 대해서는, 「Microsoft」를 참조해 주세요.ACE.OLEDB.12.0' 공급자가 로컬 시스템에 등록되어 있지 않습니다.
언급URL : https://stackoverflow.com/questions/375991/import-excel-spreadsheet-columns-into-sql-server-database
'programing' 카테고리의 다른 글
NSInterger의 NSLog/printf 지정자? (0) | 2023.04.13 |
---|---|
Ruby에서 문자열에 하위 문자열이 포함되어 있는지 확인하는 방법 (0) | 2023.04.13 |
SQL Server ORDER BY 날짜 및 Null 마지막 (0) | 2023.04.13 |
라이브(저장되지 않은) Excel 데이터와 C# 객체 간의 인터페이스를 위한 가장 빠른 방법 (0) | 2023.04.13 |
Python의 목록 내에서 하위 문자열 찾기 (0) | 2023.04.13 |