【发布时间】:2017-12-22 00:52:59
【问题描述】:
错误是
将 varchar 值 'b' 转换为数据类型 int 时转换失败。
表结构:
CREATE TABLE [dbo].[Table_1]
(
[columnA] varchar(50) NULL,
[ColumnB] int NOT NULL,
ColumnC int null
) ON [PRIMARY]
GO
INSERT INTO [dbo].[Table_1] ([columnA], [ColumnB], ColumnC)
VALUES (23, 56, 'b')
我的 ETL 管道记录所有错误。有些是有用的,比如
无法将值 NULL 插入列“ColumnB”、表“DWDev.dbo.Table_1”,列不允许空值。插入失败'
而其他的相对没用。
如何提高我无法直接操作的错误消息的有用性,例如上面第一句中的错误消息?
【问题讨论】:
-
问题是,第一个错误可能会在 大量 的情况下产生,而且在很多情况下,甚至可能be应用于数据“目标”的名称。 IE。在评估较大表达式的子表达式时可能会发生这种情况。
-
您可以提供“有用”消息的唯一方法是解析数据并自己测试其有效性。然而,这可能需要相当多的工作,但您可以提供准确的信息。否则,您将依赖系统消息。
标签: sql-server tsql sql-server-2017