【问题标题】:How to overcome truncation error?如何克服截断错误?
【发布时间】:2018-07-05 20:33:22
【问题描述】:

我正在尝试使用导入和导出向导将小型数据集从 CSV 文件移动到现有(空)表。我执行了 Script Table As > Create To,以获取该表的所有 DML。我知道导致问题的两个字段的字段类型是 varchar(50)。我收到此错误消息:

Error 0xc020902a: Data Flow Task 1: The "Source - Reconciliation_dbo_agg_boc_consolidated_csv.Outputs[Flat File Source Output].Columns["ReportScope"]" failed because truncation occurred, and the truncation row disposition on "Source - Reconciliation_dbo_agg_boc_consolidated_csv.Outputs[Flat File Source Output].Columns["ReportScope"]" specifies failure on truncation. A truncation error occurred on the specified object of the specified component.
 (SQL Server Import and Export Wizard)

所有字符的最大长度为 49,所以我不确定 SQL Server 为何抱怨截断。有什么方法可以禁用此错误检查并强制它工作?它应该按原样工作!谢谢大家。

【问题讨论】:

标签: sql-server sql-server-2008


【解决方案1】:

有什么办法可以禁用这个错误检查并强制它 工作?它应该按原样工作!谢谢大家。

是的。如果您使用向导,则可以在运行前查看表架构,并选中忽略截断选项。

【讨论】:

  • 忽略截断的选项在哪里?我在任何地方都没有看到它。
  • @Everyone Else:我打开了 CSV,将其保存为文本文件,然后导入就好了。其他建议都不适合我。奇怪的是,该文件直接来自 SQL Server,我试图将其加载回 SQL Server(同一张表)。很奇怪,它不起作用。
【解决方案2】:

所有字符的最大长度是 49,所以我不知道为什么 SQL Server 正在抱怨截断。

在使用导入向导时,源列的默认数据类型可能是Text,因此请使用源的高级选项卡将其更改为 varchar(50)。查看此link 了解更多详情。

【讨论】:

    【解决方案3】:

    为了安全起见,请检查源和目标中的列数据类型。如果两者不同,只需将所有列声明为表内的 varchar 并具有一些最大长度,例如 varchar(max) 或 varchar(500),看看会是什么结果。

    更改 Varchar 列的最大长度:

    ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500);
    

    然后该列将默认允许空值,即使它最初定义为 NOT NULL。即在 ALTER TABLE 中省略规范 ... ALTER COLUMN 始终被视为。

    ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NULL;
    

    根据要求检查列是否可为空或不可为空,只需更改它即可。

    使用以下步骤更好地了解如何使用 SQL Server Management Studio 将 CSV 文件导入数据库:

    虽然 SQL Server 上没有大容量复制和其他大容量导入选项,但您可以使用 SQL Server Management Studio 将 CSV 格式的文件导入数据库。

    首先,在您的数据库中创建一个表,您将在其中导入 CSV 文件。创建表后:

    • 使用 SQL Server Management Studio 登录到您的数据库。

    • 右键单击数据库并选择任务 -> 导入数据...

    • 单击下一步 > 按钮。

    • 对于数据源,选择平面文件源。然后使用浏览按钮选择 CSV 文件。在单击 Next > 按钮之前花一些时间配置数据导入。

    • 对于目标,选择正确的数据库提供程序(例如,对于 SQL Server 2012,您可以使用 SQL Server Native Client 11.0)。输入服务器名称;选中使用 SQL Server 身份验证,输入用户名、密码和数据库,然后单击下一步 > 按钮。

    • 在选择源表和视图窗口中,您可以在单击下一步 > 按钮之前编辑映射。

    • 立即选中运行并单击下一步 > 按钮。

    • 点击完成按钮运行包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-23
      • 1970-01-01
      相关资源
      最近更新 更多