[英]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 Code
和Customer 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.