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

Откуда:
Сообщений: 373
Здравствуйте!

-- Нужно как-то выполнять несколько процедур для всех значений SelT.A из селекта:
INSERT INTO InsT(InsT.A, InsT.B)

SELECT SelT.A, SelT.B
FROM SelT 
25 фев 14, 16:57    [15627438]     Ответить | Цитировать Сообщить модератору
 Re: Вызов процедуры при Insert Select  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
цикл ?
25 фев 14, 17:14    [15627622]     Ответить | Цитировать Сообщить модератору
 Re: Вызов процедуры при Insert Select  [new]
sanekoffice
Member

Откуда:
Сообщений: 373
Звучит стыдно :) но проблема в следующем.

Я в курсе что ХП вызывается так : exec Proc @paramter

Но я не знаю как организовать ее вызов не из переменной а из простого селекта, то есть:

exec Proc (где параметр это результат выборки поля из селекта)
25 фев 14, 18:13    [15628123]     Ответить | Цитировать Сообщить модератору
 Re: Вызов процедуры при Insert Select  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
sanekoffice
exec Proc (где параметр это результат выборки поля из селекта)

так низя...
или DSQL как вариант - но намучатесь
25 фев 14, 18:14    [15628131]     Ответить | Цитировать Сообщить модератору
 Re: Вызов процедуры при Insert Select  [new]
Glory
Member

Откуда:
Сообщений: 104751
sanekoffice
Но я не знаю как организовать ее вызов не из переменной а из простого селекта, то есть:

Никак
Придется в цикле перебирать все записи. Присваивать значения полей переменным. И вызывать процедуру
25 фев 14, 18:15    [15628133]     Ответить | Цитировать Сообщить модератору
 Re: Вызов процедуры при Insert Select  [new]
sanekoffice
Member

Откуда:
Сообщений: 373
Причем осложняется тем что полей прилетает множество и процедуры приходится вызывать десятки
Я же не буду каждое поле из выборки писать в переменную:

declare @a 
set @a = select SelT.A where id = ......

declare @b 
set @a = select SelT.A where id = ......

insert into InsT (A,B) values (@a, @b)

exec proc1 @a 
exec proc1 @b
25 фев 14, 18:18    [15628155]     Ответить | Цитировать Сообщить модератору
 Re: Вызов процедуры при Insert Select  [new]
Glory
Member

Откуда:
Сообщений: 104751
sanekoffice
Я же не буду каждое поле из выборки писать в переменную:

Ну можете попросить кого-нибудь другого написать
25 фев 14, 18:19    [15628170]     Ответить | Цитировать Сообщить модератору
 Re: Вызов процедуры при Insert Select  [new]
sanekoffice
Member

Откуда:
Сообщений: 373
Всем спасибо)
Видимо, топик можно закрывать.
25 фев 14, 18:23    [15628193]     Ответить | Цитировать Сообщить модератору
 Re: Вызов процедуры при Insert Select  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
sanekoffice,

тот редкий случай когда или цикл или курсор
25 фев 14, 18:35    [15628270]     Ответить | Цитировать Сообщить модератору
 Re: Вызов процедуры при Insert Select  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3752
sanekoffice
Здравствуйте!

-- Нужно как-то выполнять несколько процедур для всех значений SelT.A из селекта:
INSERT INTO InsT(InsT.A, InsT.B)

SELECT SelT.A, SelT.B
FROM SelT 

явно неверный принцип!!!!
Верный принцип такой:
ОДИН раз вызвать процедуру которая сама
вернет
"SELECT SelT.A, SelT.B
FROM SelT "
с нужными преобразованиями!!!
25 фев 14, 18:36    [15628273]     Ответить | Цитировать Сообщить модератору
 Re: Вызов процедуры при Insert Select  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
sanekoffice
Здравствуйте!

-- Нужно как-то выполнять несколько процедур для всех значений SelT.A из селекта:
INSERT INTO InsT(InsT.A, InsT.B)

SELECT SelT.A, SelT.B
FROM SelT 


можно еще в триггере на вставку вызывать процедуры, если сильно нужно
но там тоже может быть множество записей, курсором пройдитесь...
25 фев 14, 19:34    [15628552]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить