Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Процедура внутри MERGE / 6 сообщений из 6, страница 1 из 1
29.05.2014, 21:50
    #38656419
Notsaint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура внутри MERGE
Добрый вечер.

Могу я использовать вызов процедуры внутри 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
29.05.2014, 21:54
    #38656421
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура внутри MERGE
NotsaintМогу я использовать вызов процедуры внутри MERGE?
Не можете. И не только в MERGE, а вообще в любом DML
...
Рейтинг: 0 / 0
29.05.2014, 21:57
    #38656425
Notsaint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Процедура внутри MERGE
GloryНе можете. И не только в MERGE, а вообще в любом DML

А Begin Transaction?

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

Не возражаю.

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

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


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