Sql server 创建SQL Server格式文件以与大容量插入一起使用

Sql server 创建SQL Server格式文件以与大容量插入一起使用,sql-server,bcp,Sql Server,Bcp,我想在SQLServer中大容量插入一大堆数据,因此,我需要一个格式文件(我不是在所有列中插入值) 但是使用和bcp AdventureWorks2012.HumanResources.Department格式nul-c-x-f Department-c..xml-t,-t格式,我得到一个错误,指向-t,位,表示ParentContainerRorException缺少参数 上面的问题是什么?您需要指定xml文件的路径 这对我来说很有用: DECLARE @str VARCHAR(1000) S

我想在SQLServer中大容量插入一大堆数据,因此,我需要一个格式文件(我不是在所有列中插入值)

但是使用和
bcp AdventureWorks2012.HumanResources.Department格式nul-c-x-f Department-c..xml-t,-t
格式,我得到一个错误,指向
-t,
位,表示ParentContainerRorException缺少参数


上面的问题是什么?

您需要指定xml文件的路径

这对我来说很有用:

DECLARE @str VARCHAR(1000)
SET @str = 'bcp AdventureWorks2014.HumanResources.Department format nul -c -x -f D:\Stack\Department-c.xml -t, -T'  
EXEC xp_cmdshell @str
GO
鉴于结果:

<?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="," MAX_LENGTH="7"/>
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="24"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="DepartmentID" xsi:type="SQLSMALLINT"/>
  <COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="3" NAME="GroupName" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="4" NAME="ModifiedDate" xsi:type="SQLDATETIME"/>
 </ROW>
</BCPFORMAT>


您想做什么?您需要选择数据。是否要将其输出到xml文件?选择数据是什么意思?就像我写的一样,我正在尝试创建一个模型文件,用于批量插入。我遵循了链接指南,使用了上面引用的语法,然后得到了我列出的错误。@ChristoferOhlsson他们之所以建议使用CMD,是因为BCP实际上是一个可执行文件。BCP.exe,您可以从命令提示符调用它。但是我发现使用SQL更容易:)一件奇怪的事情是,bulk insert然后抱怨“不允许从数据类型datetime隐式转换为int。请使用CONVERT函数运行此查询。”我试图将两个相同的datetime字段插入到两个不同的列中。两者都是DateTime,一个允许NULL,另一个不允许。他们在模型中看起来是这样的:@ChristoferOhlsson你能用插入代码提出一个新问题吗。并显示日期栏的数据。问题是,新问题在这里: