powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Merge с фиксированными значениями
3 сообщений из 3, страница 1 из 1
Merge с фиксированными значениями
    #40136822
Фотография Roust_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день,

У мне есть таблица:

Код: sql
1.
2.
3.
4.
5.
6.
CREATE TABLE [Companies](
	[Id] NOT NULL,
	[JsonReport] [varchar](max) NULL,
	[UpdatedOn] [datetime] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO



И есть данные: @Id, @JsonReport.

Мне нужно вставить запись в таблицу если записи с моим @Id не существует и проапдейтить поля JsonReport и UpdatedOn если такая запись уже есть.

Можно ли для этого испльзовать команду Merge?

Те примеры, которые я нашел используют две таблицы: source & destination

Спасибо.
...
Рейтинг: 0 / 0
Merge с фиксированными значениями
    #40136825
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roust_m
Можно ли для этого испльзовать команду Merge?

Можно.

Roust_m
Те примеры, которые я нашел используют две таблицы: source & destination

Превратить список литералов в набор записей - проблема? SELECT @Id, @JsonReport в CTE либо подзапросе.
...
Рейтинг: 0 / 0
Merge с фиксированными значениями
    #40136915
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
IF OBJECT_ID(N'T')IS NOT NULL DROP TABLE Tl;
CREATE TABLE T(ID INT NOT NULL, V INT NULL);
INSERT T(ID,V)VALUES(1,1),(2,NULL),(3,-100),(4,0);
SELECT * FROM T;

DECLARE @ID INT=3, @V INT=55;

MERGE T USING(VALUES(@ID,@V))S(ID,V) ON T.ID=S.ID
WHEN MATCHED THEN UPDATE SET V=S.V
WHEN NOT MATCHED THEN INSERT(ID,V)VALUES(S.ID,S.V);

SELECT * FROM T;



https://dbfiddle.uk/?rdbms=sqlserver_2019&fiddle=ce2c4225cbbdd6a77545aa14e0823fa4
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Merge с фиксированными значениями
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (2): Анонимы (1), Yandex Bot 6 мин.
Пользователи онлайн (8): Анонимы (5), Bing Bot, Google Bot 1 мин., Yandex Bot 1 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]