Sql server 2008 r2 bcp将数据导入为基256?

Sql server 2008 r2 bcp将数据导入为基256?,sql-server-2008-r2,bcp,Sql Server 2008 R2,Bcp,从数据文件导入以下行时: DATAFILE1: 1,2,3,4,5,6.789 10,11,12,13,14,15.6789 在SQLServer2008R2中,数据就像是将数据解释为以256为基数的ascii值一样(即12337=(48*256)+49,其中“0”=48,“1”=49) 我正在使用的命令 bcp TABLE1 in DATAFILE.csv -S SERVER1 -d DB1 -U sa -f bcp.fmt 一切都顺利返回,没有错误,但当我查看表格时,一切都错了。这是b

从数据文件导入以下行时:

DATAFILE1:

1,2,3,4,5,6.789
10,11,12,13,14,15.6789
在SQLServer2008R2中,数据就像是将数据解释为以256为基数的ascii值一样(即12337=(48*256)+49,其中“0”=48,“1”=49)

我正在使用的命令

bcp TABLE1 in DATAFILE.csv -S SERVER1 -d DB1 -U sa -f bcp.fmt
一切都顺利返回,没有错误,但当我查看表格时,一切都错了。这是bcp.fmt文件(非xml)

表的DDL:

CREATE TABLE [dbo].[TABLE1](
    [FIELD1] [int] NOT NULL,
    [FIELD2] [smallint] NOT NULL,
    [FIELD3] [bigint] NOT NULL,
    [FIELD4] [bigint] NULL,
    [FIELD5] [bigint] NULL,
    [FIELD6] [decimal](18, 8) NOT NULL,
    [FIELD7] [decimal](18, 8) NULL
)

终于在这里找到了答案:

问题出在bcp.fmt文件中。应指定数据类型。引用其中一个回答“只要将该死的字段标记为SQLCHAR,让db进行转换,一切都好。”

提示也很方便“在处理ASCII文件时,将所有文件存储类型设置为char,而不考虑表的数据类型。这是使用BCP将ASCII数据加载到SQL Server的唯一方法。”这与源文件的“文件存储类型”。
10.0
6
1       SQLINT              0       0       ","   1     FIELD1                  ""
2       SQLSMALLINT         0       0       ","   2     FIELD2                  ""
3       SQLBIGINT           0       0       ","   3     FIELD3                  ""
4       SQLBIGINT           0       0       ","   4     FIELD4                  ""
5       SQLBIGINT           0       0       ","   5     FIELD5                  ""
6       SQLDECIMAL          0       0       "\n"  6     FIELD6                  ""
CREATE TABLE [dbo].[TABLE1](
    [FIELD1] [int] NOT NULL,
    [FIELD2] [smallint] NOT NULL,
    [FIELD3] [bigint] NOT NULL,
    [FIELD4] [bigint] NULL,
    [FIELD5] [bigint] NULL,
    [FIELD6] [decimal](18, 8) NOT NULL,
    [FIELD7] [decimal](18, 8) NULL
)