Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Inserir proc armazenado de atualização no SQL Server


Sua suposição está correta, esta é a maneira ideal de fazer isso e é chamada de upsert/merge.

Importância do UPSERT - de sqlservercentral.com:

Para cada atualização no caso mencionado acima, estamos removendo uma leitura adicional da tabela se usarmos o UPSERT em vez de EXISTS.Infelizmente para um Insert, os métodos UPSERT e IF EXISTS usam o mesmo número de leituras na tabela. ser feito quando houver uma razão muito válida para justificar a E/S adicional. A maneira otimizada de fazer as coisas é garantir que você tenha o mínimo possível de leituras no BD.

A melhor estratégia é tentar a atualização. Se nenhuma linha for afetada pela atualização, insira. Na maioria das circunstâncias, a linha já existirá e apenas uma E/S será necessária.

Editar :Por favor, confira esta resposta e a postagem de blog vinculada para saber mais sobre os problemas com esse padrão e como fazê-lo funcionar com segurança.