复制整行,不包括标识符列

我正在尝试在表中插入新行,该表是除标识符外的另一行的精确副本。以前我没有这个问题,因为有一个ID栏没有自动填充。所以我可以像这样复制一行

INSERT INTO table1 SELECT * FROM table1 WHERE Id = 5

然后手动更改ID

WITH tbl AS (SELECT ROW_NUMber() OVER (PARTITION BY Id ORDER BY Id) AS RNr,Id
FROM table1 WHERE Id = 5 
UPDATE tbl SET Id = (SELECT MAX(Id) FROM table1) + 1 
WHERE RNr = 2

最近,列ID已更改为不手动填充(我也希望更好)。但这导致了一个错误,当IDENTITY_INSERT为假时,我显然无法填写该列。不幸的是,我无权在声明之前和之后使用SET IDENTITY_INSERT IdentityTable ON/OFF,但无论如何我也希望避免这样做。

我正在寻找一种方法,以插入不包括ID列的整个行,而无需在INSERTSELECT语句(它们很多)中互相命名。

zhurouxia 回答:复制整行,不包括标识符列

在ID最大值以下的代码中加一,因此不会侵犯您的完整性。

TransformerSupplier2
,

好的,我找到了一种使用临时表的方法

seq = [r for r in df1.keys() if get_close_matches(r,df.keys(),n=1,cutoff = .50)]
df2 = df1[seq]
本文链接:https://www.f2er.com/3154261.html

大家都在问