powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Updatable views & computed columns
6 сообщений из 6, страница 1 из 1
Updatable views & computed columns
    #32008699
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть у меня некая таблица с вычисляемыми полями и view для нее. Для view существует instead of триггер. Вот пример:

create table t1(
objectGUID uniqueidentifier rowguidcol not null unique,
name sysname,
cn as name
)

create view t1v
as
select * from t1


create trigger ins_t1v on t1v
instead of insert, update
as
insert into t1 (objectGUID, name) select objectGUID, name from inserted

Все взято с потолка для упрощенного примера, так что особого смысла в этих определениях не ищите.
Пытаюсь вставить строку во view
insert into t1v (objectGUID, name) values (newid(), 'test1')
Получаю ошибку "The column 'cn' in table 't1v' cannot be null.". Если в insert добавить cn, то все пройдет нормально, его значение проигнорируется и в select'е будет видно правильное значение для поля cn.
Так что мне теперь, в insert'ы добавлять перечисляемые колонки ?! А получше способа нет ? 8-(((
...
Рейтинг: 0 / 0
Updatable views & computed columns
    #32008709
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
create view t1v with viewmeta_data ...
...
Рейтинг: 0 / 0
Updatable views & computed columns
    #32008710
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, подчерк не туда воткнул: with view_metadata...
...
Рейтинг: 0 / 0
Updatable views & computed columns
    #32008713
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не помогло.
Несмотря на то, что в BOL написано "When a view is created WITH VIEW_METADATA, all its columns (except for timestamp) are updatable if the view has INSERT or UPDATE INSTEAD OF triggers". Приврали они, видать...
...
Рейтинг: 0 / 0
Updatable views & computed columns
    #32008718
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда... Нашлось тут решение, как бы помягче выразиться...
Создаю функцию
create function FuckingNull()
returns sysname
as
begin
return ''
end

и определение таблицы меняю так:
create table t1(
objectGUID uniqueidentifier rowguidcol not null unique,
name sysname not null,
cn as name + dbo.FuckingNull()
)

Колонка cn становится "нулябельной".
Только, может быть, кто-то подскажет более приличный способ ?
...
Рейтинг: 0 / 0
Updatable views & computed columns
    #32008725
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще такой трабл, который не лечится dummy - функцией. Если определение поля примерно следующее:
objectGUID uniqueidentifier UNIQUE NOT NULL DEFAULT newid(),
то поле во вью тоже не допускает null, но default от базовой таблицы на него не распространяется! То есть все-таки придется в insert'ы добавлять тупые дефолты
((

Народ, посоветуйте что-нибудь...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Updatable views & computed columns
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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