Microsoft的技術頁說您可以執行以下操作以使用格式文件從.csv文件導入物理樣本表。我有這個工作。使用帶有XML Bulk格式文件的.csv文件中的Insert Openrowset創建臨時表
使用OPENROWSET批量行集提供
下面的示例使用INSERT ... SELECT * FROM OPENROWSET(BULK ...)從myTestFormatFiles-c.Dat數據文件批量導入數據 轉換爲AdventureWorks示例 數據庫中的 HumanResources.myTestFormatFiles表。本示例使用XML格式文件MyTestFormatFiles.Xml。 該示例在導入數據 文件之前刪除任何現有表格行。在SQL Server Management Studio中查詢編輯器,執行:
USE AdventureWorks2012;
DELETE myTestFormatFiles;
GO
INSERT INTO myTestFormatFiles
SELECT *
FROM OPENROWSET(BULK 'C:\myTestFormatFiles-c.Dat',
FORMATFILE='C:\myTestFormatFiles.Xml'
) as t1 ;
GO
SELECT * FROM myTestFormatFiles;
GO
-- When you finish using the sample table, you can drop it using the following statement:
DROP TABLE myTestFormatFiles
然而,我想要做的正是這一點,但導入到臨時 #table尚不存在(類似於一個可以創建的方式帶有select into語句的新表)。這是可能的,如果沒有,爲什麼不呢?
附加問題:您可以使用select into來創建臨時表嗎? 我知道你可以使用select into to create a table。
現在我可以用進口散裝OPENROWSET有沒有現有的臨時表創建表並導入它:
INSERT INTO #TestFormatFiles
SELECT *
FROM OPENROWSET(BULK 'C:\myTestFormatFiles-c.Dat',
FORMATFILE='C:\myTestFormatFiles.Xml'
) as t1 ;
GO
測試告訴我沒有:Invalid Object name #TestFormatFiles
但有沒有辦法必須從現有表創建臨時表?
你知道你將提前還是會改變數據的結構? – RT72
現在沒有時間去嘗試,但你有沒有試過正常的方式如何溫度。表格被創建,'select * into #tmp from ...' –