Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как попроще запретить изменения записей в таблице не за текущий день.
|
|||
|---|---|---|---|
|
#18+
Как попроще запретить изменения записей в таблице и в подтаблице не за текущий день (Записи датированы при помощи поля Date)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2002, 17:00 |
|
||
|
Как попроще запретить изменения записей в таблице не за текущий день.
|
|||
|---|---|---|---|
|
#18+
Использовать Триггер с проверкой даты...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2002, 17:06 |
|
||
|
Как попроще запретить изменения записей в таблице не за текущий день.
|
|||
|---|---|---|---|
|
#18+
Что-то в голову не приходит, что в этом триггере написать. Может кто-то подскажет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2002, 18:12 |
|
||
|
Как попроще запретить изменения записей в таблице не за текущий день.
|
|||
|---|---|---|---|
|
#18+
За синтаксис не отвечаю на память не помню, но принцип такой if exists(select * from deleted D where datediff(dd,D.datenlog,getdate())!=0 begin Rollback Tran raiseerror(..???.'Ошибка !!') --вроде такая функція return end где 1) datenlog - вспомогательное поле куда автоматом присваевается getdate() 2) datediff или datendiff (не помню) функция в BOL 3) raiseerror не помню точно как пишиться, для генерации ошибки, что бы показать пользователю надпись, придется тебе поиграться с ее параметрами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2002, 20:25 |
|
||
|
Как попроще запретить изменения записей в таблице не за текущий день.
|
|||
|---|---|---|---|
|
#18+
А не лучше ли использовать представления... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2002, 12:59 |
|
||
|
Как попроще запретить изменения записей в таблице не за текущий день.
|
|||
|---|---|---|---|
|
#18+
RE: Александру Третьякову Спасибо. Вот что получилось: if exists(select * from deleted D where datediff(dd, Дата, getdate())<>0) or exists(select * from inserted D where datediff(dd, Дата, getdate())<>0) begin raiserror ('Разрешается изменение записей только за текущий день', 16, 1) ROLLBACK TRANSACTION return end RE: Александру Гладченко Если в представлении, прийдется использовать разные представления для просмотра и изменения, и кроме того можна вставить запись неудовлетворяющую условием отбора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2002, 16:45 |
|
||
|
Как попроще запретить изменения записей в таблице не за текущий день.
|
|||
|---|---|---|---|
|
#18+
Имхо часто стоит условие по текущей дате вынести в представление (и в его триггер) или создать сторед проц. А прямые права у всех пользователей на основную табличку порезать. Просто часто встают служебные задачи чего-то делать задним числом (например перезаполнить столбец или импортировать данные из аналогичной БД и т.п.). Тогда вот задним, но уже не числом придется делать вот эти действия: либо вставлять в триггер контроль прав (что неверно в принципе), либо drop/create, что не менее ошибочно... Если нужно, одумайтесь (вполне может оказаться, что вариант с триггером для вас идеален). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2002, 00:11 |
|
||
|
Как попроще запретить изменения записей в таблице не за текущий день.
|
|||
|---|---|---|---|
|
#18+
Re: Speshuric CREATE PROCEDURE EnableDataEdit AS ALTER TABLE MyTable DISABLE TRIGGER Trigger1 CREATE PROCEDURE DisableDataEdit AS ALTER TABLE MyTable Enable TRIGGER Trigger1 или можно в одной процедуре с параметром. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2002, 10:21 |
|
||
|
Как попроще запретить изменения записей в таблице не за текущий день.
|
|||
|---|---|---|---|
|
#18+
2V. Motchulsky: disable trigger и enable trigger действуют на все подключения, не только на текущее, так что это небезопасно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2002, 10:47 |
|
||
|
Как попроще запретить изменения записей в таблице не за текущий день.
|
|||
|---|---|---|---|
|
#18+
Если контроль нужен только при добавлении или изменении, то триггер, IMHO, - излишество, достаточно сделать соответствуюший табличный CONSTRAINT, например, следующего вида: DateDiff(dd,[date], CURRENT_TIMESTAMP)= 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2002, 13:43 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32027867&tid=1822993]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
136ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 472ms |

| 0 / 0 |
