Microsoft 的技术页面说您可以执行以下操作,使用格式文件将 .csv 文件导入到物理样本表中。我有那个工作。
Using the OPENROWSET Bulk Rowset Provider
The following example uses INSERT ... SELECT * FROM OPENROWSET(BULK...) to bulk import data from the myTestFormatFiles-c.Dat data file into HumanResources.myTestFormatFiles table in the AdventureWorks sample database. This example uses an XML format file, MyTestFormatFiles.Xml. The example deletes any existing table rows before importing the data file. In SQL Server Management Studio Query Editor, execute:
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 .
现在我可以使用 import bulk OPENROWSET 和一个尚不存在的临时表来创建表并将其导入其中:
INSERT INTO #TestFormatFiles
SELECT *
FROM OPENROWSET(BULK 'C:\myTestFormatFiles-c.Dat',
FORMATFILE='C:\myTestFormatFiles.Xml'
) as t1 ;
GO
测试告诉我不:无效的对象名称#TestFormatFiles
但是有没有办法不用从现有表创建临时表呢?
最佳答案
是的:而是使用 SELECT * INTO #TestFormatFiles FROM OPENROWSET...
。
(您几乎做到了:您不能 INSERT INTO
一个不存在的表。)
关于sql-server - 使用从具有 XML 批量格式文件的 .csv 文件插入 Openrowset 创建临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43359388/