Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > UPDATE нужных полей


Автор: AlexNor 21.6.2004, 08:50
Я делаю UPDATE записи при её редактировании по всем полям (изменялись они или нет) с помощью хранимки (я передаю значение всех полей...).
А как сделать UPDATE только по тем полям которые были скорректированы?

Автор: boevik 21.6.2004, 08:55
AlexNor, динамически формируешь запрос UPDATE, но IMHO, оставь как есть и модернизируй все поля через хранимку (если их там не 200 штук smile.gif ).

Автор: AlexNor 21.6.2004, 09:15
Да вот динамически как-то неочень хочется если чесно... smile.gif Я думал может как нить можно по другому ...
Полей у меня 12.

Но как тогда быть с пользователями которые имеют право корретировать только пару полей в базе данных?

Автор: boevik 21.6.2004, 09:21
Цитата
Я думал может как нить можно по другому ...

Я не знаю, как по другому.

Цитата
Но как тогда быть с пользователями которые имеют право корретировать только пару полей в базе данных?

Передать в хранимку id юзера, и проверять в ней или юзер меняет запрещенные поля или нет.
Если меняет, вывалить ему ошибку и сделать ну-ну-ну smile.gif

Автор: Guest 21.6.2004, 09:54
Цитата
Передать в хранимку id юзера, и проверять в ней или юзер меняет запрещенные поля или нет.

Была такая мысль, а как мне узнать менял ли он запрещённые поля?

Выполнить запрос в хранимке на редактируемую запись и сравнить с переданным? А как в хранимке получить значения SELECT'a???
Т. е.
select * .... where i_id = @numElem
а как значения (в хранимке) из этого select'a получить?

Автор: AlexNor 21.6.2004, 10:07
Guest-это я... чё то переклинило оперу....

Автор: boevik 21.6.2004, 10:11
AlexNor
Цитата
Выполнить запрос в хранимке на редактируемую запись и сравнить с переданным? А как в хранимке получить значения SELECT'a???

Код
declare @val1 varchar(50)
select @val1 = field1 from table1 where i_id = @numElem
В @val1 получаешь значение поля и можешь с ним делать, что пожелаешь.

Автор: AlexNor 21.6.2004, 10:16
Спасибо. Буду действовать smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)