使用连续编号更新 SQL

2023-12-20

我想更新一个从 1 开始连续编号的表。更新有一个 where 子句,因此只有满足该子句的结果才会被重新编号。我可以在不使用临时表的情况下有效地完成此任务吗?


这可能取决于您的数据库,但这是 MySQL 5 的一个解决方案,涉及使用变量:

SET @a:=0;
UPDATE table SET field=@a:=@a+1 WHERE whatever='whatever' ORDER BY field2,field3

您可能应该编辑您的问题并指出您正在使用哪个数据库。

编辑:我发现了一个solution http://www.sqlmag.com/Article/ArticleID/93349/sql_server_93349.html将 T-SQL 用于 SQL Server。它与 MySQL 的方法非常相似:

DECLARE @myVar int
SET @myVar = 0

UPDATE
  myTable
SET
  @myvar = myField = @myVar + 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用连续编号更新 SQL 的相关文章

  • 在存储过程中使用动态sql中的临时表

    我正在 SQL Server 2012 中编写存储过程 我有一个像这样定义的临时表 DECLARE CURRENT RET WEEK PTIMEIDS TABLE PTIMEID INT 我也在使用EXECUTE编写动态 SQL 查询 有什
  • TSQL ROW_NUMBER() OVER(分区依据...排序依据...)

    我可以在没有分区的情况下执行 row number 吗 参见帖子末尾的数据 我可以使用此语句来获取订单 ROW NUMBER OVER PARTITION BY LOG ID ORDER BY ORDER ID 有什么建议可以获取 LOG
  • 到命名实例的 Sql 连接字符串

    我可以在示例代码项目中使用它连接到我的 sql server 2008 开发人员服务器 string connection data source SQLSERVER2008 Integrated Security SSPI Initial
  • “等待操作超时”...但仅来自 .NET 客户端?

    我有一个查询 当从我的应用程序执行时会抛出 SqlException 0x80131904 超时已过期 操作完成之前超时时间已过 或者服务器没有响应 在 Visual Studio 中单步执行代码时 我遇到了同样的错误 但是 当使用相同的凭
  • 将 SQL Server 数据库合并为 1

    我需要将 20 个具有相同结构的数据库合并为 1 个数据库 我看到了这个帖子 以最小的延迟将来自许多不同数据库的数据整合到一个数据库中 https stackoverflow com questions 2537986 consolidat
  • 使用sql server中的更新附加二进制文件

    我在 sql server 2008 的特定字段中有二进制数据 但我想将一些二进制数据附加到同一字段 你能帮我吗 如果它是一个varbinary n varbinary max 你只需附加 declare foo table id int
  • 'PDOException' 带有消息 'SQLSTATE[22001]:字符串数据,右截断:0

    NOTE 我已将这个问题缩小到特定的 PDO 因为我能够使用odbc http php net manual en book uodbc php功能 为什么我不能将此参数绑定到 PDO 准备好的语句 这有效 mssqldriver ODBC
  • 确定表的行大小

    如何确定表的最大行大小 我正在寻找一个可以执行此操作的工具或脚本 这样我就不必手动添加每列的大小 我的目标是生成一份太宽表格的报告 以便我们可以考虑重组它们 我知道我们有几个太宽 每个 8K 页面只能容纳 1 行 但我想找到其余的 另一种方
  • SQL Server 中的“with (nolock)”是什么?

    有人可以解释使用的含义with nolock 关于查询 什么时候应该 不应该使用它 例如 如果您有一个银行应用程序 交易率很高并且某些表中有大量数据 那么在什么类型的查询中 nolock 是可以的 是否存在您应该始终使用它 从不使用它的情况
  • 如何配置 SQL Server 以允许通过 IIS 访问

    我有一个将数据存储在本地 SQL Server 2008 数据库中的 Web 服务 如果我在我的帐户下运行 Web 服务 则 Web 服务可以成功访问数据库 但是 如果我使用 DefaultAppPool IUSR 帐户 则从 Web 服务
  • TSQL - 如何在 BEGIN .. END 块内使用 GO?

    我正在生成一个脚本 用于自动将更改从多个开发数据库迁移到登台 生产 基本上 它需要一堆更改脚本 并将它们合并成一个脚本 将每个脚本包装在一个IF whatever BEGIN END陈述 然而 有些脚本需要GO语句 以便 SQL 解析器在创
  • SQL Server 列的默认值

    当您使用列的默认值时SQL Server Management Studio表设计器 SSMS 更改您的默认值并在其周围添加括号 在所有版本和 SQL Server 的所有版本中 例如 如果您设置0作为默认值 此默认值更改为 0 我不知道为
  • SQL Server 列的默认登录用户

    如何创建一个列 其中包含当时在表中创建该行的用户的默认值 I tried system user 但这显示了从表中进行选择时登录的人员 尝试这样的事情 CREATE TABLE DemoTable ID INT IDENTITY 1 1 S
  • 从 dacpac 获取计算列的 DataType

    当遍历一个Dacpac通过 C 代码 我能够找出计算列中引用了哪些列 GetReferenced Microsoft SqlServer Dac Model Column ExpressionDependencies 以及该列的表达式是什么
  • SQL Server 查询从字符串中删除最后一个单词

    SO 中已经有一个带有 MySQL 标签的问题的答案 因此 我决定让您的生活更轻松 并为 SQL Server 用户提供以下答案 总是很高兴看到不同的答案 也许会有更好的表现 快乐编码 SELECT SUBSTRING YourString
  • 树形表的sql查询

    我有一个树形结构的表 id parentId name 1 0 Category1 2 0 Category2 3 1 Category3 4 2 Category4 5 1 Category5 6 2 Category6 7 3 Cate
  • SQL Server:使用计算列批量插入表

    我尝试使用 bcp 将文本文件中的数据插入到具有计算列的 SQL Server 2016 表中 我的 bcp 命令 bcp Test dbo myFirstImport IN D myFirstImport txt f D myFirstI
  • 为什么从 SQL Server 2000 升级到 2005 会导致查询速度变慢?

    将数据库从 SQL Server 2000 升级到 SQL Server 2005 会导致查询速度变慢 是否有任何常见原因 这是来自具有数百个表的 ASP NET 1 1 应用程序 所有内容都已索引 并且似乎在旧版本上运行良好 升级后 您需
  • 选择出现多次的行

    TableOne PersonId PersonScore 1 10 1 20 2 99 2 40 3 45 我只需要获取 PersonId 多次出现的那些行 例如以下是我想要实现的结果集 PersonId PersonScore 1 10
  • 而不是SQL Server中的触发器丢失SCOPE_IDENTITY?

    我有一个表 我在其中创建了一个INSTEAD OF触发执行一些业务规则 问题是当我将数据插入该表时 SCOPE IDENTITY 返回一个NULL值 而不是实际插入的身份 插入 范围代码 INSERT INTO dbo Payment Da

随机推荐