0

我正在处理的 SQL 中有一个 INSERT 语句 - 请参阅下面的查询。当我运行该语句时,它给出了这个错误:

消息 8152,级别 16,状态 2
字符串或二进制数据将被截断。
该语句已终止。

我该如何纠正这个错误?

在旧表(数据来自哪里)中,[Environment] 列称为 [Err_Dev_Prod],它是 NVARCHAR (50) 数据类型。在新表中它是 BIT 数据类型

IF OBJECT_ID(N'LCN_Board', N'U') IS NOT NULL DROP TABLE LCN_Board
CREATE TABLE [LCN_Board](
    [Metric_Id] VARCHAR(128) NULL,
    [Environment] BIT NULL, --[Err_Dev_Prod]
    [Date/Time] DATETIME NULL,
    [IMPORT_DATE] DATE DEFAULT GETDATE() NULL,
    [MODIFIED_DATE] DATE DEFAULT GETDATE() NULL,
    [REPORTING_PERIOD]DATE NULL,
    [Process_ID] Uniqueidentifier DEFAULT (NEWID()) NOT NULL,
    [Key] VARCHAR(128) NULL
) ON [PRIMARY]
GO
INSERT INTO LCN_Board
(   [Metric_Id], 
    [Environment], 
    [Date/Time], 
    [IMPORT_DATE], 
    [MODIFIED_DATE], 
    [REPORTING_PERIOD],
    [Process_ID]
    )
SELECT  
    [Metric Id], 
    CASE LOWER([Err_Dev_Prod]) WHEN 'yes' THEN 1 ELSE 0 END,
    [Date/Time], 
    [IMPORT_DATE], 
    [MODIFIED_DATE], 
    [REPORTING_PERIOD],
    [Process_ID] 
FROM dbo. LCN_Board_old
ORDER BY [Date/Time];
GO
4

1 回答 1

0

这不是 BIT 转换的情况,如果可能,尝试增加 varcahar 限制或设置为最大值

于 2015-08-28T10:37:07.027 回答