【发布时间】:2017-05-16 18:15:41
【问题描述】:
我有一个这样的 CSV 数据表:
a | b | c | d | f
1: 12 Dave Larry $1234.0 FALSE
2: 324.0 Bob Gray $24.012 TRUE
3: 2000 John Stan $204.0
4: 9000 Stace Jill - FALSE
5: 850.0 Till $30 TRUE
诸如用户的 cmets 之类的字段将包含逗号,因此这些字段通过单引号或双引号进行转义。 Excel 可以很好地打开这些文件,并可用于在导入前清理或操作数据。
从迁移的角度来看,对我来说最简单的事情是先将数据作为 varchars 导入 SQL Server,然后使用 SQL 将数据操作为目标格式。
我确实遇到了以下问题:
1) 尝试导入 CSV 可能会导致问题。 SQL Server Management Studio 的导入需要严格格式化的 CSV,这意味着像 cmets 列或文本中格式化为货币的数字可能会导致导入失败。
2) 将 CSV 保存为 XLS 时,SQL Server Management Studio 似乎仍然在尝试“聪明”地解释数据的方式,无论其格式如何。有时,即使您愿意,也无法将数据转换为 nvarchar 或 varchar,因为导入实用程序已经假定数据是数字的。制表符分隔可能最终无法正常工作,尤其是对于用户 cmets 之类的内容。
将 CSV 导入 SQL Server,使所有列变为 varchar 或 nvarchar 的无错误方法是什么?
【问题讨论】:
标签: sql-server excel csv ssms import-from-excel