삽입 문자열
create Table #Temp (id int)
Insert into #Temp values
(1), << this would be a formula to format the string
(2),
...
에 대한 수식을 만들 수 있습니다.
SELECT * into temptable
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\Documents and Settings\....\example.xls;IMEX=1',
'SELECT * FROM [Sheet1$]')
기타 옵션
SSIS package to import Excel file
또한 작업에가는 데이터베이스를 마우스 오른쪽 버튼으로 클릭하여 즉시 SSMS에서이 같은 패키지를 생성 할 수는 수입 날짜와 설치 소스 파일로 엑셀.
연결된 서버를 만들 수있는 권한이 있습니까?
Excel에 있거나 txt 파일이라도 있으면 연결된 서버를 만들 수도 있습니다. SSMS를 관리자 권한으로 열어야합니다! 또한이 파일은 자신과 sqlagnet을 모두 믿을 수있는 접근 가능한 경로 여야합니다. 예 : 로컬 경로 또는 파일 공유 SSMS를 열면 Excel 연결된 서버를 만든 다음 쿼리합니다.
는 여기에 내가 TEH 연결된 서버 문을 생성하고 추가하는 데 사용하는 하나의 도구입니다
/* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
IN ORDER TO QUERY EXCEL YOU MUST RUN SSMS AS ADMINISTRATOR!!!!!!!
This doesn't seem to affect import jobs run under the SQL Agent, but the way SSMS handles
permissions to folders it is not prviledged when accessing the ACE 12.0 OLEDB provider.
I have tried all of the in-process and giving direct permissions, etc. and only running SSMS as
Administrator seems to work
*/
DECLARE @RC int
DECLARE @server nvarchar(128)
DECLARE @srvproduct nvarchar(128)
DECLARE @provider nvarchar(128)
DECLARE @datasrc nvarchar(4000)
DECLARE @location nvarchar(4000)
DECLARE @provstr nvarchar(4000)
DECLARE @catalog nvarchar(128)
-- Set parameter values
SET @server = N'XLSERVER'
SET @srvproduct = N'Excel'
SET @provider = N'Microsoft.ACE.OLEDB.12.0'
--SET @provider = N'Microsoft.ACE.OLEDB.15.0'
SET @datasrc = N'FULLFILEPATH'
--SET @provstr = N'Excel 12.0; HDR=Yes' ---wihtout imex
SET @provstr = N'Excel 12.0;IMEX=1;HDR=YES;' ----Office 2007+
--SET @provstr = N'Excel 8.0;IMEX=1;HDR=YES;' ----Office 97-2003 Uses Jet 4.0 instead of ACE 12.0
IF EXISTS(SELECT * FROM sys.servers WHERE name = @server)
BEGIN
--Drop The Current Server
EXEC master.dbo.sp_dropserver @server, @droplogins='droplogins'
END
EXEC @RC = [master].[dbo].[sp_addlinkedserver] @server, @srvproduct, @provider,
@datasrc, @location, @provstr, @catalog
그리고 여기에 연결된 서버를 만든 후에는 데이터에서 선택할 수있는 방법이다. 파일을 열 수 없습니다.
SELECT *
FROM
XLSERVER...Sheet1$
id는 어디에서 오는가? 다른 테이블, 쿼리, 서버? – Matt
@Matt 그들은 Excel 파일에서 나에게 주어졌으며 대부분의 경우 이전 쿼리에서 생성되었습니다. 그러나이 원래 쿼리를 얻을 방법이 없다는 주장을 들어 봅시다. – BenWS
'openrowset' 함수로 .txt 파일을 읽을 수 있습니다. https://msdn.microsoft.com/en-us/library/ms190312.aspx –