Sql server Freetds将数字作为整数写入数据库

Sql server Freetds将数字作为整数写入数据库,sql-server,freetds,freebcp,Sql Server,Freetds,Freebcp,我使用freebcp将数据批量复制到SQL Server。它工作正常,但数值最终被截断为整数。数据库中的列是一个浮点,因此它可以处理带小数的值 命令 freebcp MyDatabase.MySchema.MyTable in /path/to/myfile.txt -c -S MyServer -U MyUser -P MyPassword MyTable有5列,第一列是2个整数,其他列是浮点 样本来自myfile.txt 19344 303634 -0.419398400743657

我使用
freebcp
将数据批量复制到SQL Server。它工作正常,但数值最终被截断为整数。数据库中的列是一个
浮点
,因此它可以处理带小数的值

命令

freebcp MyDatabase.MySchema.MyTable in /path/to/myfile.txt -c -S MyServer -U MyUser -P MyPassword
MyTable有5列,第一列是2个整数,其他列是浮点

样本来自
myfile.txt

19344   303634  -0.419398400743657  -1.38936409312037   0.550567291633061
19345   303634  -1.59787440264054   -2.05068741446749   -1.14506139081359
存储为

19344   303634  0   -1  1
19345   303634  -2  -2  -1
如何解决这个问题

注意:我在Ubuntu下使用的是
freebcp
。在Windows下使用
bcp
时,浮动列可以正确导出,同时使用几乎相同的语法(只需将
freebcp
替换为
bcp
并使用插入式连接即可)

提问者最初用十进制表示三列的数据类型 位置为
数字
。提问者编辑问题,更改数据类型 以
浮动
,响应此答案

NUMERIC
在功能上等同于
DECIMAL

是否为SQL表中的
数值列定义了精度和刻度?未定义时,默认精度为18,比例为0。因此,如果未定义它们,则小数点右侧将有0位

如果无法预测所需的小数位数(小数位数),则
FLOAT
数据类型更合适

否则,您需要设置
数值的精度和比例

提问者最初用十进制表示三列的数据类型 位置为
数字
。提问者编辑问题,更改数据类型 以
浮动
,响应此答案

NUMERIC
在功能上等同于
DECIMAL

是否为SQL表中的
数值列定义了精度和刻度?未定义时,默认精度为18,比例为0。因此,如果未定义它们,则小数点右侧将有0位

如果无法预测所需的小数位数(小数位数),则
FLOAT
数据类型更合适


否则,您需要设置
NUMERIC

的精度和比例。非整数字段的数据类型为
FLOAT
。我已经更新了我的问题。非整数字段的数据类型是
FLOAT
。我已经更新了我的问题。
bcp MyDatabase.MySchema.MyTable in /path/to/myfile.txt -c -S MyServer -T