0

错误是

将 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”,列不允许空值。插入失败'

而其他的相对没用。

如何提高我无法直接操作的错误消息的有用性,例如上面第一句中的错误消息?

4

1 回答 1

0

对于ColumnA的DataType是Varchar(50),需要用单引号来修饰值而ColumnC的Datatype是Int,不能插入'B',应该是整数值。

您提供的值顺序应与插入条款中指定的列顺序相同,您可以通过 2 种方式更正查询

           INSERT INTO [dbo].[Table_1]
           ([columnA]
           ,[ColumnB]
           ,ColumnC)
     VALUES
           ('23',
           56,
           1)

或者

           INSERT INTO [dbo].[Table_1]
           ([ColumnB]
           ,ColumnC,
            [columnA])
     VALUES
           (23,
           56,
           'b')
于 2017-12-22T05:42:41.847 回答