Если вы используете ADO.NET, DataAdapter справится с этим.
Если вы хотите справиться с этим самостоятельно, вот путь:
Убедитесь, что в столбце ключей есть ограничение первичного ключа.
Тогда вы:
- сделать обновление
- Если обновление завершится неудачно, поскольку запись с ключом уже существует, выполните вставку. Если обновление не завершится неудачно, вы закончили.
Вы также можете сделать это наоборот, то есть сначала выполнить вставку и выполнить обновление, если вставка не удалась. Обычно первый способ лучше, потому что обновления выполняются чаще, чем вставки.