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

Откуда:
Сообщений: 30
Два столбца, на значения, хранимые в каждом из столбцов нужно выполнить хранимую процедуру, получилось сделать на один столбец
+
Declare @t table (id uniqueidentifier ,Adress char(14))
.....
Declare @s char(14)
Declare curs Cursor FOR
SELECT
SNILS
FROM @t
Open Curs
WHILE 0=0
Begin
FETCH next from curs INTO @s;
if @@fetch_status <> 0
break
exec sp_SaveSNILS @SNILS=@s
END
Close curs;

попробовал @s задавать как table но курсор не определяет тогда ее.
Нужно для второй хранимки еще курсор делать или есть возможность как то запихнуть сюда же.
P.S. Вот кусок кода как пробовал:
+
Declare @s table (id uniqueidentifier, s char(14))
Declare curs Cursor FOR
SELECT
NosologyID, SNILS
FROM @t
Open Curs
WHILE 0=0
Begin
FETCH next from curs INTO @s;
if @@fetch_status <> 0
break
exec sp_SaveSNILS @SNILS=s
exec sp_GetSetNosologyList @ID=id
END
Close curs;
6 окт 16, 14:01    [19750478]     Ответить | Цитировать Сообщить модератору
 Re: Курсор  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
fRosSty,

Declare curs Cursor FOR SELECT NosologyID,SNILS, FROM @t
...
FETCH next from curs INTO @NosologyID, @snils;
6 окт 16, 14:05    [19750501]     Ответить | Цитировать Сообщить модератору
 Re: Курсор  [new]
fRosSty
Member

Откуда:
Сообщений: 30
TaPaK,
получается @s table тут вообще не нужна?
6 окт 16, 14:10    [19750541]     Ответить | Цитировать Сообщить модератору
 Re: Курсор  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
fRosSty,

а курсор умеет в таблицу?
6 окт 16, 14:14    [19750578]     Ответить | Цитировать Сообщить модератору
 Re: Курсор  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
fRosSty,

sp_SaveSNILS переделать можно?
Если да, то от курсора лучше отказаться.
Пусть процедура внутри себя сразу все СНИЛСы обрабатывает.
6 окт 16, 14:15    [19750582]     Ответить | Цитировать Сообщить модератору
 Re: Курсор  [new]
fRosSty
Member

Откуда:
Сообщений: 30
iap,
переделать нельзя, задание сделать именно с курсором
6 окт 16, 14:17    [19750594]     Ответить | Цитировать Сообщить модератору
 Re: Курсор  [new]
fRosSty
Member

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

а после FETCH next from curs INTO @NosologyID, @snils;
в хранимки передавать значения @NosologyID, @snils, правильно понимаю?
+
Declare @NosologyID uniqueidentifier;
Declare @SNILS uniqueidentifier;
Declare curs Cursor FOR
SELECT
NosologyID, SNILS
FROM @t
Open Curs
WHILE 0=0
Begin
FETCH next from curs INTO @NosologyID, @SNILS;
if @@fetch_status <> 0
break
exec sp_SaveSNILS @SNILS = @NosologyID
exec sp_GetSetNosologyList @ID = @SNILS, @IsNew = 1
END
Close curs;
6 окт 16, 14:23    [19750644]     Ответить | Цитировать Сообщить модератору
 Re: Курсор  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
fRosSty,

а я откуда знаю, это ж ваши процедуры какие параметры надо те и передавайте
6 окт 16, 14:25    [19750657]     Ответить | Цитировать Сообщить модератору
 Re: Курсор  [new]
fRosSty
Member

Откуда:
Сообщений: 30
TaPaK,
я просто не пойму, в этих переменных @NosologyID, @snils прогоняются все значения из @t table (id uniqueidentifier ,Adress char(14))?
6 окт 16, 14:29    [19750691]     Ответить | Цитировать Сообщить модератору
 Re: Курсор  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
fRosSty
TaPaK,
я просто не пойму, в этих переменных @NosologyID, @snils прогоняются все значения из @t table (id uniqueidentifier ,Adress char(14))?

поможем машеньке открыть справку по курсорам?
https://msdn.microsoft.com/ru-ru/library/ms181441(v=sql.120).aspx
6 окт 16, 14:37    [19750748]     Ответить | Цитировать Сообщить модератору
 Re: Курсор  [new]
fRosSty
Member

Откуда:
Сообщений: 30
TaPaK,
все я понял, спасибо
6 окт 16, 14:55    [19750842]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить