Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Хранимые процедуры и передача в них неограниченного числа параметров  [new]
RSerg
Guest
Доброго времени суток.
У меня возникла такая проблема. Мне необходимо добавить с помощью хранимой процедуры некоторое число записей в таблицу. Число этих записей не известно заранее. Все осложняется тем что это тип varchar поэтому вариант с нарезанием строки в которойё все параметры передовать не подойдет. Сама процедура вызывается из программы на VC++ Из нее и параметры передаются. Помогите, может кто знает как эта проблема решается. Напрашивается массив, но насколько я понимаю SQL такие штуки не поддерживает
27 май 03, 17:28    [211788]     Ответить | Цитировать Сообщить модератору
 Re: Хранимые процедуры и передача в них неограниченного числа параметров  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Мне необходимо добавить с помощью хранимой процедуры некоторое число записей в таблицу. Число этих записей не известно заранее. Все осложняется тем что это тип varchar поэтому вариант с нарезанием строки в которойё все параметры передовать не подойдет.

Ну так и вызови хп несколько раз для каждой записи.
27 май 03, 17:31    [211797]     Ответить | Цитировать Сообщить модератору
 Re: Хранимые процедуры и передача в них неограниченного числа параметров  [new]
Hibernate
Member

Откуда: Киев
Сообщений: 1670
я активно пользую для этого XML - очень даже удобно.
поищи по форуму - неоднократно обсуждалось.
27 май 03, 17:39    [211815]     Ответить | Цитировать Сообщить модератору
 Re: Хранимые процедуры и передача в них неограниченного числа параметров  [new]
Pavel
Member

Откуда: Кемерово
Сообщений: 2435
Еще вариант - передача в процедуру заранее подготовленной временной таблицы или таблицы-переменной.
27 май 03, 19:35    [212068]     Ответить | Цитировать Сообщить модератору
 Re: Хранимые процедуры и передача в них неограниченного числа параметров  [new]
Crimean
Member

Откуда:
Сообщений: 13148
Или курсора по заранее подготовленной таблицы вплоть до:

drop procedure myproc

go

create procedure myproc
as
set nocount on
fetch next from cur
while @@fetch_status = 0 begin
fetch next from cur
end

go

declare cur CURSOR for SELECT 1 as id union select 2
open cur

exec myproc

close cur
deallocate cur
go


В результате ожидаемое:

id          

-----------

1

id
-----------

2

id
-----------


А вот как сджелать курсор - дело техники. Или с временной таблицы или с постоянной или явно селектами через унионы набрать...
27 май 03, 20:28    [212100]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить