【发布时间】:2014-02-28 17:46:53
【问题描述】:
我有一个包含 MAC 地址列表的表格,在某些情况下已填充到十二位数字,而在其他情况下则没有。
即:00FF12345678 或 FF12345678
在某些情况下,此表中同时存在这两个值。我有一个用两个零填充值的函数,我可以计算这些重复项的出现次数,但我没有时间或耐心手动删除重复项或填充那些还没有记录的重复项。
我想我可以使用以下语句将 10 位数的值更新为正确的值:
UPDATE [rs_DEVICES]
SET [device] = dbo.pad_zero(12,[device])
WHERE LEN([device]) < 12
当然这不起作用,因为我只需要更新那些没有现有 12 位记录的值。此列的唯一约束阻止了我这样做。
我需要在 WHERE 子句中使用某种 IF EXISTS 语句,但我无法提出任何可行的方法。
使用 MSSQL Server 2008 R2。
想法?
【问题讨论】:
-
在列上添加唯一索引
标签: sql sql-server sql-update exists unique-constraint