2017-07-26 84 views
0

我正在使用T-SQL的混搭版來生成有關數據庫驅動的CAD軟件(Solidworks Electrical)內的信息的報告。我正在嘗試生成目錄。由於軟件限制,我必須使用SQL生成此表。讀取.csv表並將其打印爲SQL查詢輸出

我想要做的是在Excel中創建目錄,將其保存爲.csv,並讓我的SQL查詢讀取此文件並將其作爲輸出吐出。

示例表:

Sheet,System 
1,Radios 
2,Processors 
3,Navigation 

經過一番搜索我一直無法找到一個解決方案自己。我的問題是:

1)讀取存儲在.csv文件我的硬盤

2)開啓此.csv文件爲表(無法獲取存儲在數據庫中,只是暫時的,而我們運行查詢)

3)輸出此表中的數據作爲查詢

我曾嘗試使用以下方法來讀我的.csv表,但收到錯誤「語法錯誤,違反權限,或其他非特異性的結果錯誤」。所以有可能我的軟件不允許我讀取外部文件。 (NB,我的軟件使用]] [[而不是引號....]

select 
]]col1[[, 
]]col2[[, 
]]col3[[ 
from openrowset('MSDASQL' 
,'Driver={Microsoft Access Text Driver (*.txt, *.csv)}' 
,'select * from D:\SQL Queries\input.CSV') 

任何援助將不勝感激!由於

回答

0

這個SQL工作對我來說:

select * from openrowset (bulk N'C:\Temp\source.csv', formatfile = N'C:\Temp\format.xml', firstrow=2) SourceFile 

內容source.csv是這樣的:

Sheet,System 
1,Radios 
2,Processors 
3,Navigation 

內容format.xml是這樣的:

<?xml version="1.0"?> 
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<RECORD> 
    <FIELD ID="1" xsi:type="CharTerm" TERMINATOR=","/> 
    <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="128" COLLATION="SQL_Latin1_General_CP1_CI_AS"/> 
</RECORD> 
<ROW> 
    <COLUMN SOURCE="1" NAME="ID" xsi:type="SQLINT"/> 
    <COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/> 
</ROW> 
</BCPFORMAT>