我有一个Excel表格,其中有几个值,我将其导入到SQL(book1 $)中,我想将这些值转移到ProcessList中。由于行包含原始和修改后的值,因此几行具有相同的主键(即ProcessID),我希望保留这两者的值。如何使SQL忽略重复的主键?
我尝试了IGNORE_DUP_KEY = ON,但对于具有重复主键的行,只显示最新的一行。
CREATE TABLE dbo.ProcessList
(
Edited varchar(1),
ProcessId int NOT NULL PRIMARY KEY WITH (IGNORE_DUP_KEY = ON),
Name varchar(30) NOT NULL,
Amount smallmoney NOT NULL,
CreationDate datetime NOT NULL,
ModificationDate datetime
)
INSERT INTO ProcessList SELECT Edited, ProcessId, Name, Amount, CreationDate, ModificationDate FROM Book1$
SELECT * FROM ProcessList
另外,如果我有一行数据并更新该行的值,是否有办法保留该行的原始值,并自动插入一个克隆行,包含更新后的值和创建/修改日期?
PRIMARY KEY (Edited, ProcessId)
而不是在单个列上定义主键。 - wwkudu