一个公司使用SQL Server数据库来存储它的客户和业务事务的信息。 新区号已经出台了你的城市。 区号111保持与前缀是小于500的数字与前缀是500和更大的将被分配在客户表中电话列中的所有电话号被存储为222的区域码相同的电话号码以下格式,“999-999-9999”的炭(12)的字符串。 我必须对Customers表进行相应的更改
尽可能快地使用最少的管理工作。 我应该使用哪一个?
一种。
UPDATE Customers SET Phone = ‘222-‘ + SUBSTRING(Phone,5,8)
FROM Customers WHERE SUBSTRING(Phone,1,3) = ‘111’
AND SUBSTRING(Phone,5,3) >= 500
湾
DECLARE PhoneCursor CURSOR FOR
SELECT Phone FROM Customers
WHERE SUBSTRING(Phone,1,3) = 111
AND SUBSTRING(Phone,5,3) >= 500
OPEN PhoneCursor
FETCH NEXT FROM PhoneCursor
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE Customers
SET Phone = ‘222’ + SUBSTRING(Phone,5,8)
WHERE CURRENT OF PhoneCursor
FETCH NEXT FROM PhoneCursor
END
CLOSE PhoneCursor
DEALLOCATE PhoneCursor