Вам требуется вставить значение в таблицу либо обновить его (если ключ уже содержится в таблице) одним запросом?

Как это сделать просто в MS SQL?

Допустим, у нас есть таблица товаров, содержащая два поля: id товара и какой-то признак (mark) (изменения, выгрузки и проч.)

If OBJECT_ID('Products') IS NULL
CREATE TABLE [dbo].[Products](
[Id] [char](9) COLLATE Cyrillic_General_CI_AS NOT NULL,
[Mark] [tinyint] NOT NULL,
CONSTRAINT [PK_Products] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

Необходимо, чтобы запрос добавлял запись о товаре, если ее нет, и обновлял бы пометку, если такая запись есть.

Например, нужно обновить товар с id = '     1   ' и пометкой 0.

В MySQL это можно сделать с помощью такого запроса:

INSERT INTO Products VALUES ('     1   ', 0)
ON DUPLICATE KEY UPDATE Mark = 0

В MS SQL, чтобы не заморачиваться с MERGE, можно написать такой запрос:

UPDATE Products
SET Mark = 0
WHERE Id = '     1   '
IF (@@ROWCOUNT = 0 )
INSERT INTO Products VALUES ('     1   ', 0)

Другие статьи по прямым запросам:

Ускоряем регистрацию объектов в МОД (для SQL)

Проверка дублей строк с помощью 1С++

Как использовать УРБД в отличающихся конфигурациях

Примеры решения нестандартных задач на T-SQL в 1С

Как написать прямой запрос в 1С (DBF, 1sqlite)

Запросы в 1С к двум базам одновременно (DBF, OLE DB)

Как написать прямой запрос в 1С (SQL) с помощью 1С++

Онлайн резервирование товаров на складе (online reservation)