Добавление колонки во View (MS SQL)

Добрый день!

Столкнулся с проблемой, когда представление в BPM наследует таблицу, выводит в интерфейсе мою добавленную колонку, но в SQL таблицу эта колонка не добавляется. Вот как это выглядит:

Добавил колонку "Специальная цена" в таблицу, которую наследует представление:
1

В представлении эта колонка отображается как унаследованная. Все верно:
2

Но в БД ее нет:
3

а следовательно и при выводе колонки в интерфейсе из-под пользователя я получаю ошибку, что колонки нет, что логично.

Вот и вопрос: как добавить эту же колонку в представление?

Нравится

11 комментариев

Виталий,

Во View базы данных колонка добавляется ручками путем правки этого самого View.

Через конфигурацию по сути только настраивается соответствие сущности в системе и представления в БД.

Допустим так... Тогда как этими ручками добавить во View колонку? В контекстном меню ничего нет. В схеме тоже никаких команд. В дизайнере тем более. На MSDN тоже нет ни слова о добавлении во View колонки.

И еще: если доступа к базе у меня нет, а только интерфейс, получается, что я не смогу выполнить свою задачу?

Подскажите, если не трудно. Заранее спасибо!

"Виталий Марушко" написал:Допустим так... Тогда как этими ручками добавить во View колонку? В контекстном меню ничего нет. В схеме тоже никаких команд. В дизайнере тем более. На MSDN тоже нет ни слова о добавлении во View колонки.

Это получилось выполнить через контекстное меню представления и команды ALTER, дописав туда свою колонку. Немного странно, что нету похожей команды, как у таблицы.

Но вопрос о том, как мне это сделать, если у меня нет доступа к БД остается открытым...

Да. Все верно. Можно сделать через ALTER например.

При работе с представлением вам в любом случае придется создавать его самостоятельно в БД.
Если у вас нет прямого доступа к БД, значит нужно искать варианты выполнения SQL-скрипта по модификации/созданию представления из приложения.

Виталий

Если у вас версия 7.x сделать это можно с помощью sql-сценария в пакете
Если у вас версия 5.x то думаю стоит посмотреть в сторону класса CustomQuery.

Дмитрий, спасибо за помощь! Версия у меня 5.х (потому и тему на форуме создал соответственно). А на счет CustomQuery - да, вариант похоже единственный. Думал, что возможно существует способ это выполнить без написания такого сценария... Видимо, нет.

Ессть готовая страница для выполнения произвольных SQL-запросов, её нужно загрузить в конфигурацию.

Во View действительно добавлять колонки только руками.

"Толмачев Дмитрий Юрьевич" написал:Через конфигурацию по сути только настраивается соответствие сущности в системе и представления в БД.

это тоже потом только ручками?

1. Добавляете во View колонку через БД
2. В конфигурации в объект добавляете колонку с тем же именем и типом, публикуете

Объект в конфигурации и View в БД связываются благодаря одинковому названию и наличию галки «Представление».

"Зверев Александр" написал:В конфигурации в объект добавляете колонку с тем же именем и типом, публикуете

bpm мог бы научиться сам считывать колонки View, конечно...

Иногда View вместо таблицы используют в особых случаях, со сложными union и join, триггерами. Там нельзя просто так взять и добавить колонку, нужно думать.

Показать все комментарии