我有一个查询,需要在没有自增主键的表中批量插入行。
--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
(简化的例子 - 请不要评论可能存在的并发问题 :-))
问题在于它不能为每个处理的行递增主键“PK”,我得到了主键冲突的错误。
我知道如何使用游标 / while循环来处理,但我想避免这样做,并以集合为基础的方式解决它,如果可能的话?
(运行 SQL Server 2008 Standard)