大家好,我正在尝试将这 3 条记录复制给另一个用户
这是获取图像结果的代码。
CREATE TABLE #TEMP (IDSOL INT not null PRIMARY KEY ,USUARIO VARCHAR(50) ,LastName varchar(255) NOT NULL,FirstName varchar(255),Age int, )
INSERT INTO #TEMP
VALUES(1,'ADMIN','RODRIGUEZ','LOPEZ',20)
INSERT INTO #TEMP
VALUES(2,'ADMIN','YAÑEZ','CARROL',20)
INSERT INTO #TEMP
VALUES(3,'ADMIN','MONS','JAFET',20)
SELECT * FROM #TEMP
--DROP TABLE #TEMP
我试图复制它,因为它与不同的用户只是 IDSOL 列是 PRIMARY KEY 所以不能重复相同的值,有人能给我一个想法吗?我正在考虑使用 WHILE 并逐条插入记录,但不是我有一个清晰的想法。
每次您想像这样插入时,您总是可以获得最大 idsol + 1 :
这样,您可以确保始终将下一个 id 插入到最后一个生成的 id 中。
理想。
您的表的定义必须是 a
IDENTITY
以便IDSOL
它是您的主键,这样您只需INSERT
从 a 简单地制作一个SELECT
:结果如下:
在这里您可以看到演示及其结果。
垂死挣扎。
如果由于某种原因无法修改临时表的结构,则一种选择是
IDSOL
通过将记录号与函数相加来计算最后插入的数据ROW_NUMBER
,您只需使用与您拥有的相同的代码,它INSERT
是通过SELECT
:结果如下:
在这里您可以看到演示及其结果。
关于你所说的,你没有修改表的可能性,我想到的是你可以获取最后输入的ID并增加它。这样可以避免重复。我想你可以使用
MAX
.