【发布时间】:2016-04-21 10:02:26
【问题描述】:
我有这个开始失败的遗留代码......
UPDATE B2C
SET B2C.dborderid = A.order_number__c
FROM b2csf B2C
JOIN Alemania A ON B2C.actualid = A.salesforce_id
我收到此错误:
消息 245,第 16 级,状态 1,第 1 行
将 nvarchar 值 '7201799-' 转换为数据类型 int 时转换失败。
我继续修改为:
UPDATE B2C
SET B2C.dborderid = (CASE
WHEN Isnumeric (a.order_number__c) = 1
THEN CAST(a.order_number__c AS INT)
END)
FROM b2csf B2C
JOIN Alemania A ON B2C.actualid = A.salesforce_id
现在我明白了
消息 245,第 16 级,状态 1,第 1 行
转换 nvarchar 值“7575932”时转换失败。数据类型为 int。
我现在的问题是:
如何避免此错误?例如,我不介意丢失“7575932”。值。(理想情况下,我想丢弃 '7575932.' 值)
我正在尽最大努力遵循最佳实践...将
DBorderid列更改为nvarchar是唯一的“最佳实践”替代方案吗?
(我使用的是 SQL Server 2008)
【问题讨论】:
标签: sql-server-2008