Erstens können Sie verhindern, dass jemals ein Duplikat in der Tabelle auftritt, indem Sie einen eindeutigen Index oder eine eindeutige Einschränkung verwenden. Ein Index/eine Einschränkung kann zusammenwirken mit den unten stehenden Vorschlägen. Wenn Sie nur Verwenden Sie einen eindeutigen Index und keine der folgenden Lösungen. Das Einfügen eines doppelten Datensatzes wird einen Fehler auslösen und Sie müssen dies am anderen Ende behandeln.
Außerdem würde ich die Daten wahrscheinlich über eine gespeicherte Prozedur einfügen, die überprüft, ob die Zeile bereits vorhanden ist. Dazu können Sie entweder ein MERGE verwenden Anweisung, wie in diesem Pseudocode gezeigt:
create procedure MyProcedure
(
@Name nvarchar(100),
...
)
as
merge MyTable
using
(
select @Name,...
) as source (Name, ...)
on MyTable.Name = source.Name
when not matched then
insert (Name,...) values (source.Name,...)
when matched then
update set Name = @Name,...
oder Sie könnten prüfen, ob Datensätze vorhanden sind, und sie manuell einfügen oder aktualisieren:
create procedure MyProcedure
(
@Name nvarchar(100),
...
)
as
if not exists (select * from MyTable where Name = @Name)
begin
insert into MyTable (Name,...) values (@Name,...)
end
else
begin
update MyTable
set ...
where Name = @Name
end