Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 циклический просмотр  [new]
guest11
Guest
Мне нужно обновить таблицу(idob,...) и присвоить полю idob результат выполнения SP. причем в каждой строке idob равен новому результату запуска SP.
как я понимаю через один update этого не сделать. Тогда наверно нужен циклический просмотр. Для курсора это выглядит как то так:
FETCH NEXT FROM Cursor
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Cursor
END

А как сделать аналогично для таблицы?
15 фев 05, 11:31    [1321622]     Ответить | Цитировать Сообщить модератору
 Re: циклический просмотр  [new]
Smirnov Anton
Member

Откуда: Н.Новгород
Сообщений: 3220
это можно сделать в один апдейт с помощью скалярной UDF
15 фев 05, 11:34    [1321637]     Ответить | Цитировать Сообщить модератору
 Re: циклический просмотр  [new]
Роман Дынник
Member

Откуда:
Сообщений: 3324
А заменить процедуру функцией не получится?
Тогда без курсоров и циклов можно будет.

Posted via ActualForum NNTP Server 1.1

15 фев 05, 11:35    [1321639]     Ответить | Цитировать Сообщить модератору
 Re: циклический просмотр  [new]
guest11
Guest
2Роман: целиком заменить нельзя, а сделать надстройку из функции синтаксис не позволяет(т.е. SP из функции не вызвать:( )
2Smirnov: а можно чуть подробней?
15 фев 05, 11:38    [1321651]     Ответить | Цитировать Сообщить модератору
 Re: циклический просмотр  [new]
Smirnov Anton
Member

Откуда: Н.Новгород
Сообщений: 3220
guest11
2Роман: целиком заменить нельзя, а сделать надстройку из функции синтаксис не позволяет(т.е. SP из функции не вызвать:( )
2Smirnov: а можно чуть подробней?

смысл у нас один и тот же
текст хп переписать в Scalar-valued user-defined function , а не вызывать sp в udf
15 фев 05, 11:43    [1321673]     Ответить | Цитировать Сообщить модератору
 Re: циклический просмотр  [new]
guest11
Guest
об этом варианте я уже думал. это реально но повлечет за собой много изменений в других местах. По моему проще вставить в одном месте циклический просмотр. Подскажите как это сделать, или с таблицой много сложней чем с курсором?
15 фев 05, 11:45    [1321685]     Ответить | Цитировать Сообщить модератору
 Re: циклический просмотр  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Да почему же сложнее?! Что за термин Вы придумали - циклический просмотр. Объявляйте курсор по выборке полей, необходимых для параметров хп, открывайте его, для каждой записи курсора вызывайте хп и делайте апдэйт таблицы. Можно посмотреть в сторону курсора FOR UPDATE.
15 фев 05, 11:48    [1321701]     Ответить | Цитировать Сообщить модератору
 Re: циклический просмотр  [new]
guest11
Guest
2praklin: лишний раз убедился что все гениальное просто:) просто как то в голову не пришло
15 фев 05, 11:56    [1321726]     Ответить | Цитировать Сообщить модератору
 Re: циклический просмотр  [new]
Smirnov Anton
Member

Откуда: Н.Новгород
Сообщений: 3220
можно вопрос:
автор
Для курсора это выглядит как то так:
FETCH NEXT FROM Cursor
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Cursor
END

а что вы считали курсором? курсором по чему?
просто интересно
15 фев 05, 12:00    [1321741]     Ответить | Цитировать Сообщить модератору
 Re: циклический просмотр  [new]
guest11
Guest
2Smirnov: Это был просто пример из BOL
DECLARE Employee_Cursor CURSOR FOR
SELECT LastName, FirstName FROM Northwind.dbo.Employees
OPEN Employee_Cursor
FETCH NEXT FROM Employee_Cursor
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Employee_Cursor
END
CLOSE Employee_Cursor
DEALLOCATE Employee_Cursor
15 фев 05, 12:02    [1321748]     Ответить | Цитировать Сообщить модератору
 Re: циклический просмотр  [new]
Smirnov Anton
Member

Откуда: Н.Новгород
Сообщений: 3220
guest11
2Smirnov: Это был просто пример из BOL
DECLARE Employee_Cursor CURSOR FOR
SELECT LastName, FirstName FROM Northwind.dbo.Employees

OPEN Employee_Cursor
FETCH NEXT FROM Employee_Cursor
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Employee_Cursor
END
CLOSE Employee_Cursor
DEALLOCATE Employee_Cursor

просто понять вот это фразу
автор
А как сделать аналогично для таблицы?

когда курсор для таблиц и только для них - непонятно
извините за оффтоп
15 фев 05, 12:10    [1321799]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить