星期五, 9月 26, 2014

[SQL] Linked Server 抓取 Text 檔案

紀錄要如何利用 Linked Server 抓取 Text 檔案內資料
  • Linked Server
-- 檢查 Linked Server 是否存在
IF EXISTS
    (
        SELECT 1
        FROM sys.servers s
            INNER JOIN sys.linked_logins l ON s.server_id = l.server_id
        WHERE s.is_linked = 1
              AND name = 'txtDemo'
    )
    EXEC master.sys.sp_dropserver 'txtDemo', 'droplogins'
GO

-- 建立 Linked Server
EXEC master.dbo.sp_addlinkedserver
    @server = N'txtDemo', -- 檔案名稱
    @srvproduct=N'SQLSERVER',
    @provider=N'Microsoft.ACE.OLEDB.12.0',
    @datasrc=N'D:\',      -- 檔案所在路徑
    @location= NULL,
    @provstr= N'Text',
    @catalog = NULL 
GO

-- 抓取 Text 檔案資料
SELECT * FROM txtDemo...demo#txt
  • OpenRowSet
SELECT *
FROM OPENROWSET
  (
      'Microsoft.ACE.OLEDB.12.0',
      'Text;Database=D:\;HDR=YES;Format=Delimited(,)',
      'SELECT * FROM [demo.txt]'
  )
[SQL] Linked Server 抓取 Text 檔案

沒有留言:

張貼留言