我有一个查询,我需要"批量"插入行与没有标识的主键的表.
--TableA
--PK int (Primary key, no-identity)
--CustNo int
INSERT INTO TableA (PK,CustNo)
SELECT (SELECT MAX(PK)+1 AS PK FROM TableA), CustNo
FROM Customers
Run Code Online (Sandbox Code Playgroud)
(简化示例 - 请不要评论可能的并发问题:-))
问题是它没有为每个"处理的"行增加PK,并且我得到主键违规.
我知道如何使用游标/ while循环,但我想避免这种情况,并以基于集合的方式解决它,如果这甚至可能的话?
(运行SQL Server 2008 Standard)