为sql server 2005创建bcp格式文件

时间:2013-03-12 17:04:26

标签: sql sql-server-2005 bulkinsert bcp

我无法创建bcp格式文件。我的客户端正在使用MSSQL 2005,我通过RDC远程连接。我正在使用以下命令

在目标客户端MSSQL Server上创建格式文件
  

bcp myDatabase.TableName格式nul -c -x -f someFile..xml -T

但它提示我错误

  

建立与服务器的连接时发生错误。


我的视图指向一个结构如下的表:

Colum Name          DataType
SKU                 Varchar(20)
ASIN                Varchar(20)
Price               Float
Quantity            Int
MarketplaceTitle    Varchar(50)

注意:我遇到了很多类似的问题,但没有运气。

任何人都可以为我提供上述视图的格式文件吗?

提前致谢。

1 个答案:

答案 0 :(得分:3)

听起来您的问题实际上是连接到您的数据库,而不是格式文件。

我已经创建了一个快速测试:

-- DROP TABLE dbo.Test
CREATE TABLE dbo.Test(
SKU                 Varchar(20),
[ASIN]              Varchar(20),
Price               Float,
Quantity            Int,
MarketplaceTitle    Varchar(50)
);

这里有一个稍微冗长的语法:

bcp YourDatabaseName.dbo.Test format nul -c -x -f c:\YourDir\format.xml -T -S YourServerName

所以对我来说,这看起来像这样:

bcp sandbox.dbo.Test format nul -c -x -f c:\Test\format.xml -T -S "(local)"

这是生成的文件:

<?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="\t" MAX_LENGTH="20" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\t" MAX_LENGTH="20" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\t" MAX_LENGTH="30"/>
  <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\t" MAX_LENGTH="12"/>
  <FIELD ID="5" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="50" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="SKU" xsi:type="SQLVARYCHAR"/>
  <COLUMN SOURCE="2" NAME="ASIN" xsi:type="SQLVARYCHAR"/>
  <COLUMN SOURCE="3" NAME="Price" xsi:type="SQLFLT8"/>
  <COLUMN SOURCE="4" NAME="Quantity" xsi:type="SQLINT"/>
  <COLUMN SOURCE="5" NAME="MarketplaceTitle" xsi:type="SQLVARYCHAR"/>
 </ROW>
</BCPFORMAT>

HTH。