繁体   English   中英

SQL 根据行号更新行中的列

[英]SQL update column in row based on row number

我正在尝试清理出于测试目的而拥有的数据库,并希望将列( name )更新为Name <rownumber>类的内容。

我自己给了它一个 go ,但是它循环遍历所有行并最终在Name 323处将它们命名为相同的名称; 323 是总行数。

一些方向会非常有帮助。

这就是我目前所拥有的

我不应该为表格中的每一行做一段时间吗?

DECLARE @counter INT = 2
DECLARE @rows int
DECLARE @CustCode varchar(20)
DECLARE @CustName varchar(128)
DECLARE @CustID varchar(10) 

SELECT @rows = COUNT(*) FROM Customer

WHILE @counter <= @rows
BEGIN
    SELECT @CustID = CustomerID FROM Customer
    SET @CustCode = 'CustCode' + @CustID
    SET @CustName = 'Customer Description ' + @CustID
        
    SET @CustName = 'Customer Description ' + @CustID

    UPDATE Customer 
    SET CustomerCode = @CustCode, 
        CustomerDescription = @CustName

    SET @counter = @counter + 1
END

确实,为此使用一个基于集合的语句会好得多 您没有使用任何特定的附加信息(如行号 - 如您的帖子中所述) - 您只是将固定文本(如Cust CodeCustomer Description )与现有的CustomerId连接起来 - 所以像这样的简单UPDATE语句会做(并且会一口气更新所有内容):

UPDATE dbo.Customer
SET CustomerCode = CONCAT('Cust Code ', CustomerId),
    CustomerDescription = CONCAT('Customer Description ', CustomerId);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM