powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Процедура внутри MERGE
6 сообщений из 6, страница 1 из 1
Процедура внутри MERGE
    #38656419
Notsaint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер.

Могу я использовать вызов процедуры внутри MERGE?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
ALTER PROCEDURE Suppliers.DeleteDuplicateSupplierNumber
	@S_Desc nvarchar(20) ,
    @S_Numb Suppliers.SupplierNumber ,
	@S_Date date ,
	@S_Type nchar (30) ,
	@S_Tel char(10) ,
	@S_Mail varchar(25)
AS 
BEGIN
    MERGE Suppliers.Suppliers AS target
    USING (SELECT @S_Desc, @S_Numb, @S_Date, @S_Type, @S_Tel, @S_Mail) AS source (S_Desc, S_Numb, S_Date, S_Type, S_Tel, S_Mail)
    ON (target.SupplierNumber = source.S_Numb)
    WHEN MATCHED THEN 
        UPDATE SET SupplierDescription = source.S_Desc
	WHEN NOT MATCHED THEN
		EXEC Suppliers.InsertNewSupplier
					@S_Desc ,
					@S_Numb ,
					@S_Date ,
					@S_Type ,
					@S_Tel  ,
					@S_Mail
					
END;
GO



Указанный выше код дает ошибку
Msg 156, Level 15, State 1, Procedure DeleteDuplicateSupplierNumber, Line 16
Incorrect syntax near the keyword 'EXEC'.
...
Рейтинг: 0 / 0
Процедура внутри MERGE
    #38656421
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotsaintМогу я использовать вызов процедуры внутри MERGE?
Не можете. И не только в MERGE, а вообще в любом DML
...
Рейтинг: 0 / 0
Процедура внутри MERGE
    #38656425
Notsaint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryНе можете. И не только в MERGE, а вообще в любом DML

А Begin Transaction?

Дело в том, что при добавлении я должен проверять определенные условия, заданные в процедуре Suppliers.InsertNewSupplier
...
Рейтинг: 0 / 0
Процедура внутри MERGE
    #38656426
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Notsaint, если открыть справку по merge и глянуть на описание синтаксиса, то такой вопрос не возникнет и не надо будет тратить время на форум
...
Рейтинг: 0 / 0
Процедура внутри MERGE
    #38656437
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotsaintА Begin Transaction?
И синтаксисе команды Begin Transaction тоже не предусмотрен вызов процедур
И вообще синтаксис всех команд есть в хелпе
...
Рейтинг: 0 / 0
Процедура внутри MERGE
    #38656453
Notsaint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryИ вообще синтаксис всех команд есть в хелпе

Не возражаю.

Фраза - <merge_matched> - должна была сразу натолкнуть на правильный путь.

Справился :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Процедура внутри MERGE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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