gpt4 book ai didi

sql-server - 如何使用非自动增量 ID 执行插入语句?

转载 作者:行者123 更新时间:2023-12-01 11:05:06 25 4
gpt4 key购买 nike

同样的问题也被问到 MySQL here ,无论如何该语法在 SQL Server 中不起作用。

我把那个问题的样本(通过简化)粘贴在这里,因为它很好地解释了我需要什么。

DECLARE @t1 integer
SET @t1=0;
-- MyTable is a simple Table with 2 fields "MyID" and "MyValue"
insert into MyTable
SELECT @t1 := @t1+1, --this "should" work in MySQL
MyAnotherValue
FROM AnotherTable

有没有办法在 SQL Server 中实现相同的功能(不使用游标)?

注意:这是一个只运行一次的查询,它是一个维护查询,因此竞争条件和锁不是问题。

最佳答案

这将起作用,即使您多次运行它也是如此:

insert into MyTable(MyId, MyValue)
select (select isnull(max(MyId), 0) from MyTable) + -- avoid duplicated keys, if you repeat this insert again
row_number() over(order by MyAnotherValue),
MyAnotherValue
from AnotherTable

isnull() 函数涵盖了 MyTable 为空的情况

关于sql-server - 如何使用非自动增量 ID 执行插入语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6730452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com