Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Синтаксис MERGE  [new]
Yagrus2
Member

Откуда: Москва
Сообщений: 899
Всем привет!
На сайте microsoft есть учебный скрипт

ALTER PROCEDURE [dbo].[InsertUnitMeasure]
    @UnitMeasureCode nchar(3),
    @Name nvarchar(25)
AS 
BEGIN
    SET NOCOUNT ON;

    MERGE Production.UnitMeasure AS target
    USING (SELECT @UnitMeasureCode, @Name) AS source (UnitMeasureCode, Name)
    ON (target.UnitMeasureCode = source.UnitMeasureCode)
    WHEN MATCHED THEN 
        UPDATE SET Name = source.Name
WHEN NOT MATCHED THEN
    INSERT (UnitMeasureCode, Name)
    VALUES (source.UnitMeasureCode, source.Name)
    OUTPUT deleted.*, $action, inserted.* INTO #MyTempTable;
END;


подскажите, что значит

$action

и конструкция вида
 (SELECT @UnitMeasureCode, @Name) AS source (UnitMeasureCode, Name)
Ее можно применять еще где нибудь, кроме мержа?
22 мар 16, 17:38    [18965295]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксис MERGE  [new]
Konst_One
Member

Откуда:
Сообщений: 11540
$action
Доступен только для инструкции MERGE. Указывает столбец типа nvarchar(10) в предложении OUTPUT инструкции MERGE, которая возвращает одно из трех значений для каждой строки — INSERT, UPDATE или DELETE — в зависимости от действия, выполненного над этой строкой.
22 мар 16, 17:42    [18965312]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксис MERGE  [new]
Konst_One
Member

Откуда:
Сообщений: 11540
https://msdn.microsoft.com/ru-ru/library/ms177564(v=sql.120).aspx
22 мар 16, 17:42    [18965316]     Ответить | Цитировать Сообщить модератору
 Re: Синтаксис MERGE  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Yagrus2
и конструкция вида
 (SELECT @UnitMeasureCode, @Name) AS source (UnitMeasureCode, Name)
Ее можно применять еще где нибудь, кроме мержа?
Конечно. Для любой производной (derived) таблицы. См. FROM
22 мар 16, 20:53    [18966066]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить