sql - 如何更新表中的所有行并增加一列?

标签 sql sql-server sql-server-2008 sql-server-2005 sql-update

我在 SQL Server 2008 数据库中有一个表。我需要更新特定列的值但同时增加它的值。解释一下:

如果表是:

CREATE TABLE [dbo].[Player]
(
    [PlayerID] [uniqueidentifier] NOT NULL,
    [UnitID] [uniqueidentifier] NULL,
    [ExerciseID] [uniqueidentifier] NOT NULL,
    [Designation] [nvarchar](256) NOT NULL
)

我想遍历 ExerciseID42C45D73-3FE6-4AFA-8E2F-09BDFC6CBDF7 的每一行,并将 Designation 更新为是 Player - X 但是 X 应该从 1 开始并且每次都自增 1。

因此,第一个要更新的玩家将是 Player - 1,第二个将是 Player - 2,依此类推。

我不知道从哪里开始做这样的事情!

谢谢

最佳答案

; with numbering as (
  select PlayerID,
         UnitID,
         ExerciseID,
         Designation,
         row_number () over (order by PlayerID) - 1 rn
    from Player
   where ExerciseID = '42C45D73-3FE6-4AFA-8E2F-09BDFC6CBDF7'
)
update numbering
   set Designation = 'Player - ' + convert(varchar(10), rn)

关于sql - 如何更新表中的所有行并增加一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11742649/

相关文章:

sql-server - SQL Server 2008 中的 bigint 算术溢出

php - 如何使用 Group By 组合这两个 MySQL 查询

sql-server - 使用 Reporting Services 实现 Windows 身份验证

c# - 试图防止此死锁发生在我在 SQL Server 上的 .NET 代码中

sql-server-2008 - 在 SQL Server 中生成订单号的正确方法

c# - NHibernate.Spatial 和 Sql 2008 地理类型 - 如何配置

sql - Oracle 11g 日志文件,用于查找过去发生的错误的详细信息 (ORA-00054)

sql - Joomla - 将 sql 数据库导入新服务器导致错误

用于选择最后插入的行的 php 代码

ios - 如何处理 sql server 数据库中的 iOS 表情符号?