O truque é adicionar um WHERE à sua instrução INSERT para que INSERT funcione apenas se o item não existir, seguido pela instrução SELECT. Supondo que o registro possa ser identificado por uma coluna de ID, você escreveria:
INSERT INTO MyTable (ID,Col1,Col2,...)
SELECT @IDValue,@Col1Value,@Col2Value, ...
WHERE NOT EXISTS (SELECT ID
FROM MyTable
WHERE [email protected])
SELECT *
FROM MyTable
Where [email protected]
Você não precisa colocar as instruções em uma transação porque cada instrução é executada em sua própria transação implícita. Assim, não há como dois INSERTS terem sucesso ao mesmo tempo.
EDITAR :A sintaxe INSERT ... SELECT é necessária porque o TSQL não permite uma parte VALUES e WHERE na instrução INSERT.