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

Откуда: Азербайджан, г. Баку
Сообщений: 1382
Необходимо следующее в виде функции

declare @i tinyint
select @i = i from mytable

set @i = @i + 1

update mytable set i = @i

return ltrim(str(@i))

Проблема в том, что Update в функции писать нельзя
Как иначе это сделать?

Далее эта функция должна работать в
Insert myothertable set myfield = dbo.MyFunction()
1 июл 09, 09:35    [7361748]     Ответить | Цитировать Сообщить модератору
 Re: Функция + UPDATE  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
автор
Insert myothertable set myfield = dbo.MyFunction()


Это где Вы такой синтаксис нашли?!

автор
Необходимо следующее в виде функции


Изобретаем очередной велосипед генератор последовательности?

автор
Проблема в том, что Update в функции писать нельзя
Как иначе это сделать?


Использовать процедуру.

ЗЫ. Обычное identity чем не устраивает?!
1 июл 09, 09:52    [7361814]     Ответить | Цитировать Сообщить модератору
 Re: Функция + UPDATE  [new]
Crimean
Member

Откуда:
Сообщений: 13148
делать обычный UPDATE, пользовать OUTPUT конструкцию, "щасте"
(подробности в БОЛ / MSDN)
1 июл 09, 11:14    [7362296]     Ответить | Цитировать Сообщить модератору
 Re: Функция + UPDATE  [new]
Samir
Member

Откуда: Азербайджан, г. Баку
Сообщений: 1382
это пример кода, там не такая последовательность
identity - не подходит
1 июл 09, 11:21    [7362346]     Ответить | Цитировать Сообщить модератору
 Re: Функция + UPDATE  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Триггер INSTEAD OF INSERT
1 июл 09, 11:40    [7362504]     Ответить | Цитировать Сообщить модератору
 Re: Функция + UPDATE  [new]
Crimean
Member

Откуда:
Сообщений: 13148
ой. увидел что это надо эмулировать IDENTITY, отвечал фигню - "с прямым углом спутал"
а почему, собственно, IDENTITY не подходит?
вариант с INSTEAF OD INSERT - да - вариант, но я бы все равно IDENTITY делал как IDENTITY, пусть и в другой таблице :)
1 июл 09, 13:22    [7363196]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить