SQL Server为一张小表花费的时间太长了?

时间:2019-03-07 19:05:21

标签: sql sql-server

我正在尝试从两列中删除非字母数字并将其输出到全新的表中。我上次这样做,它在大约30分钟内执行了。该表仅包含约3000行,并且我正在连接到远程服务器,并且我不确定这里是什么问题。请注意,我无权创建函数或过程。

这是我的代码:

SELECT 
    [Customer ID], [Original Product Title], [Original Product Type], 
    [New_Product_Title], [New_Product_Type] 
INTO 
    Customer_Product_2
FROM 
    Customer_Product

WHILE @@ROWCOUNT > 0
    UPDATE Customer_Product
    SET New_Product_Title = REPLACE(New_Product_Title, SUBSTRING(New_Product_Title, PATINDEX('%[^a-z0-9]%', New_Product_Title), 1), ''),
        New_Product_Type = REPLACE(New_Product_Type, SUBSTRING(New_Product_Type, PATINDEX('%[^a-z0-9]%', New_Product_Type), 1), '')

1 个答案:

答案 0 :(得分:1)

您不需要循环,因为您根本不需要检查@@ROWCOUNT > 0UPDATE语句将在您指定的集合上运行,如果集合中没有行,则不会更新任何数据。