2014-02-12 3 views
0

Excel에서 삽입 할 데이터가 많습니다. 모든 데이터는 SQL Server에서 가져온 것으로, 한 번에 여러 레코드를 삽입하는 삽입 쿼리를 준비하고 싶습니다.데이터를 삽입하는 방법 Excel에서 선택

INSERT INTO [Sheet1$] (ID,Name) 
SELECT '1' AS ID,'XYZ' AS Name UNION 
SELECT '1' AS ID,'XYZ' AS Name UNION 
SELECT '1' AS ID,'XYZ' AS Name 

있지만

Query input must contain at least one table or query. 

답변

0

처럼 나에게 오류를 제공합니다이 옵션을 사용해보십시오.

INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=D:\testing.xlsx;;HDR=YES;IMEX=1', 'SELECT Id, Name FROM [Sheet1$]') 
SELECT '1' AS ID,'XYZ' AS Name 
UNION ALL 
SELECT '1' AS ID,'XYZ' AS Name 
UNION ALL 
SELECT '1' AS ID,'XYZ' AS Name 

여기 난 당신이 이미 SQL Server의 임시 분산 쿼리 옵션을 설정했다고 가정합니다.

+0

구성했습니다. Exec sp_configure 'show advanced options', 1; RECONFIGURE; GO Exec sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE; GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0 ', N'AllowInProcess', 1; GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0 ', N'DynamicParameters', 1; 는 를 GO하지만 여전히 점점 오류 메시지 7399, 수준 16, 상태 1, 줄 3 연결된 서버의 OLE DB 공급자 "Microsoft.ACE.OLEDB.12.0" "(널)" 같은 오류를보고했습니다. 공급자가 오류에 대한 정보를 제공하지 않았습니다. –

+0

여기 ** Microsoft.ACE.OLEDB.12.0 ** bcs를 사용합니다. 내 시스템에 Microsoft Office 2007을 설치했습니다. ** Microsoft.Jet.OLEDB.4.0 **을 시도해보고 알려주세요. –

+0

내 시스템에 Office 2010 64 비트를 설치 했으므로 OLEDB4.0이 저를 위해 작동하지 않습니다 .. 또한 Microsoft 액세스 엔진 64 비트, 내 시스템 승 7 64 비트이며 또한 내 SQL 서버 2008 64 비트입니다 –

관련 문제