powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Неизменяемый столбец
5 сообщений из 5, страница 1 из 1
Неизменяемый столбец
    #32011025
Zoog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу сделать, чтобы значения столбца можно было бы задавать только при создании новой записи и нельзя было бы изменять их у созданных записей. Желательно без использования свойства identity, т. к. значения могут быть символьными.
...
Рейтинг: 0 / 0
Неизменяемый столбец
    #32011027
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
create trigger tu_YourTable on YourTable for update as
begin
declare
@numrows int,
@numnull int,
@errno int,
@errmsg varchar(255)

select @numrows = @@rowcount
if @numrows = 0
return

/* Non modifiable column "MiddleName" cannot be modified */
if update(YourColumn)
if exists (select 1
from inserted i, deleted d
where i.YourColumn != d.YourColumn)
begin
select @errno = 30001,
@errmsg = 'Non modifiable column "YourColumn" cannot be modified.'
goto error
end

return

/* Errors handling */
error:
raiserror @errno @errmsg
rollback transaction
end

...
Рейтинг: 0 / 0
Неизменяемый столбец
    #32011028
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оппа, Power Designer генерит триггер с ошибкой, а я раньше этого не замечал
Код
if update(YourColumn)
if exists (select 1
from inserted i, deleted d
where i.YourColumn != d.YourColumn)
надо заменить на
if update(YourColumn)
if exists (select 1
from inserted i, deleted d
where i.ID = d.ID and i.YourColumn != d.YourColumn)
...
Рейтинг: 0 / 0
Неизменяемый столбец
    #32011029
А если просто права на поле выставить?
INSERT+SELECT разрешить, UPDATE - запретить.
На поле права выставить нельзя из EM. Только через заапросы GRANT...COLUMN... и REVOKE...COLUMN...
...
Рейтинг: 0 / 0
Неизменяемый столбец
    #32011038
Tarantino
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я бы сделал две хранимые прицедуры, одну для добавлении записи, другую для редактирования записи, и всё!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Неизменяемый столбец
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]