【问题标题】:SQL wont import because the data will be truncated. How do get it to just cut the string off at 16 charactersSQL 不会导入,因为数据将被截断。如何让它在 16 个字符处截断字符串
【发布时间】:2025-12-18 13:50:02
【问题描述】:

我需要将.CSV 文件导入到 SQL Server 表中。在表中,其中一列的数据类型为varchar(16),但在.CSV Excel 文件中,该列中的大多数条目是25 个字符或更多。我需要 SQL Server 将字符串截断为 16 个字符并导入。我该怎么做?我什至不知道如何开始编写代码

我使用 AnySQL Maestro 导入向导将其导入表中

  1. 右击表格
  2. 点击数据管理
  3. 点击导入
  4. 选择.csv作为文件类型
  5. 选择.csv中的哪些列与sql表中的哪些列匹配
  6. 点击确定。

如果.csv 中的字段大小合适,则导入不会有问题

【问题讨论】:

  • 你是如何导入这个的?使用您自己的自定义代码(然后请显示它!)?使用 SSIS(集成服务)?还有什么??
  • 已编辑。查看 2 个新段落
  • 为什么不在 Excel 中创建一个包含您要导入的列的前 16 个字符的新列?或者向表中添加足够大的列以容纳该字段,他们运行更新语句将子字符串从该字段移动到实际的目标字段
  • 查看 AnySQL Maestro 帮助/文档/网站,看看是否有任何方法可以限制导入的字符数 - 这确实是一个特定于工具的问题与 SQL Server 本身无关 .... 如果您在他们的文档或他们的网站上找不到任何内容 - 向 AnySQL 人员发送支持请求.....
  • 因为我不是必须导入表格的人,每天都要导入大量的.csv文件。这些 .csv 文件中的每一个最初都是从水晶报表中导出的。因此在 excel 中创建一个新列太耗时且效率低下。如果导入这个的人可以在导入之前运行一个查询,这将允许我问什么,那将是可怕的

标签: sql sql-server csv import truncate


【解决方案1】:

简单的解决方案

  1. 使用 Excel 打开您的 .CSV 文件。

  2. 在 Excel 中保留前 16 个字符并删除其他字符(向左搜索功能)

  3. 使用 SQL Server Management Studio 从 Excel 文件导入数据

【讨论】: