将file.csv导入sql server 2008时,我遇到了问题。
在我的file.csv中,小数以这种方式写入:(例如1234,34112)并且似乎SQL服务器不理解','作为十进制。
我的解决方案是使用BULK INSERT作为VARCHAR导入它,然后将其转换为十进制。它有效,但我想这可能是一个更好的解决方案,我无法得到。
你可以帮帮我吗?
提前致谢
答案 0 :(得分:0)
只有两种方法可以做到这一点你已经提到过在Sql server中导入然后做这样的事情..
CREATE Table ImportTable (Value NVARCHAR(1000)) --<-- Import the data as it is
INSERT INTO @TABLE VALUES
('1234,34112'),('12651635,68466'),('1234574,5874')
/* Alter table add column of NUMERIC type.
And update that column something like this...
*/
UPDATE ImportTable
SET NewColumn = CAST(REPLACE(Value , ',', '.') AS NUMERIC(28,8))
或者您可以在导入之前将其更改为Excel工作表。
除非您使用SSIS导入数据,否则最好使用丢失数据类型在Sql Server 1st中获取数据,然后根据需要进行任何数据操作。
答案 1 :(得分:0)
SQL Server Management Studio 17 提供了一个新的直接选项来导入平面文件,为您处理十进制 csv 列的导入。右键您的数据库,然后单击任务 > 导入平面文件...