Trik spočívá v tom, že do příkazu INSERT přidáte WHERE, aby INSERT fungovalo pouze v případě, že položka neexistuje, následovaný příkazem SELECT. Za předpokladu, že záznam lze identifikovat podle sloupce ID, napište:
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]
Příkazy nemusíte vkládat do transakce, protože každý příkaz je proveden ve své vlastní implicitní transakci. Není tedy možné, aby dva VLOŽENÍ uspěly současně.
UPRAVIT :Syntaxe INSERT ... SELECT je nezbytná, protože TSQL nepovoluje části VALUES a WHERE v příkazu INSERT.