Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
mabanza
Member

Откуда:
Сообщений: 194
Привет
Запрос

select ed.*,
(select "Description" from DictCountries dc where dc.RecId=ed.Country)
from dbo.HCMEducation ed


прекрасно возвращает мне вычислимое (ну, или лукапное поле) из другой таблицы.

Тем не менее, когда я пытаюсь вставить его в MS SQL Management Studio | Column Properties | Computed Column Specification | Formula

(select dl.Description from DictCountries dl where dl.RecId=Country)

оно выкидывает ошибку

Subqueries are not allowed in this context. Only scalar expressions are allowed.

Как фикснуть?
Спасибо.
17 июн 16, 17:22    [19306372]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
https://www.mssqltips.com/sqlservertip/2481/getting-creative-with-computed-columns-in-sql-server/

используй udf
17 июн 16, 17:29    [19306416]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
хотя не совсем ясен смысл этой колонки, может проще сделать View ?
17 июн 16, 17:31    [19306425]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Konst_One,

похоже на создание представления... так что пусть пользует вашу ссылку
17 июн 16, 17:33    [19306440]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
хотя о чём это я... как угодно может делать :) жарко...
17 июн 16, 17:34    [19306446]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
mabanza
Member

Откуда:
Сообщений: 194
Не, не. Вы же видите, что запрос выполняется без всякой функции или вьюхи.
Как создать лукапное поле в Management Studio?

Никаких новых функций на каждый бздык - так написано в спеке. Шучу, конечно.
17 июн 16, 17:54    [19306549]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
mabanza
Не, не. Вы же видите, что запрос выполняется без всякой функции или вьюхи.
Как создать лукапное поле в Management Studio?

Никаких новых функций на каждый бздык - так написано в спеке. Шучу, конечно.


вы о чём?
лень делать UDF, делайте обычное View и работайте с ним вместо таблицы
17 июн 16, 17:59    [19306588]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
mabanza
Как создать лукапное поле в Management Studio?
Никак. И скриптом никак.
Потому что
Subqueries are not allowed in this context. Only scalar expressions are allowed.
17 июн 16, 18:11    [19306658]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
mabanza
Member

Откуда:
Сообщений: 194
Konst_One,

Вы о чем?
Еще раз вопрос:
Как создать лукапное поле в Management Studio?

Я не спрашиваю про функции и вьюхи, но если вы поделились тем что знаете - огромная благодарность.
Но, пожалуйста, не пишите "за жизнь", если нет ответа на конкретный вопрос.
17 июн 16, 18:12    [19306674]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
правильный проходящий.
Guest
mabanza,
а почему вы решили, что дело именно в MS SQL Management Studio? Сообщение об ошибке таки серверное.
17 июн 16, 18:46    [19306848]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31438
mabanza
Еще раз вопрос:
Как создать лукапное поле в Management Studio?

Я не спрашиваю про функции и вьюхи, но если вы поделились тем что знаете - огромная благодарность.
Но, пожалуйста, не пишите "за жизнь", если нет ответа на конкретный вопрос.
Это вроде вы тут треплетесь за жизнь.
Вам же дали совершенно конкретный ответ - нету в SQL Server и в Management Studio никаких "лукапных полей", вообще такого понятия не существует.
Кстати, не слышал про "лукапные поля" в таблицах в любом другом продукте, это обычно свойство запроса, представления, экранной формы - но не таблицы. Пусть меня поправят, если я ошибаюсь.
17 июн 16, 19:01    [19306907]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
mabanza
Member

Откуда:
Сообщений: 194
правильный проходящий.,

Нет, это сообщение среды, именуемой MS SQL Management Studio. Запрос, как я писал выше, выполняется без проблем.
Задача, которая решается, проста по постановке - в EF модели, кроме поля CountryId, вернуть CountryDescription из таблицы-словаря.
Пока мне удалось сделать это на самом верху - в C# коде. Но это хреново. Кстати, Pervasive со своей средой PCC решает это на раз.
17 июн 16, 19:14    [19306942]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
o-o
Guest
И "вычислимых" тоже нет, есть вычисляемые.
И про них конкретно написано:
BOL
Computed Columns

A computed column is computed from an expression that can use other columns in the same table.
The expression can be a noncomputed column name, constant, function,
and any combination of these connected by one or more operators.
The expression cannot be a subquery.

Т. е. абсолютно то же, что и студия пишет.
И workaround-ы предложили, но как же, это ж имеет другое название, функции, вьюхи, лучше побиться головой о стену, написать на заборе "студия дура",
придумать свои "вычислимые поля лукапы, в которые можно пихать прямиком запросы, лазящие в другие таблицы", и требовать от других реализацию "лукапов"
17 июн 16, 19:26    [19306986]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
mabanza
правильный проходящий.,

Нет, это сообщение среды, именуемой MS SQL Management Studio. Запрос, как я писал выше, выполняется без проблем.
Задача, которая решается, проста по постановке - в EF модели, кроме поля CountryId, вернуть CountryDescription из таблицы-словаря.
Пока мне удалось сделать это на самом верху - в C# коде. Но это хреново. Кстати, Pervasive со своей средой PCC решает это на раз.

ого какая каша в голове... нет никакого сообщения от "MS SQL Management Studio". Определитесь какой объект вам нужно создать почитайте хотя бы пару глав про sql и задайте вопрос если что-то неясно
17 июн 16, 20:34    [19307181]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
правильный проходящий.
Guest
mabanza
Нет, это сообщение среды, именуемой MS SQL Management Studio.
Нет, это сообщение сервера, а не среды. Которое среда показывает ибо обязана это делать. Среда не производит синтаксический анализ.
Запрос, как я писал выше, выполняется без проблем.
Ну и что? Вы запрос и таблицу отличаете друг от друга? Так вот то, что выделаете
в MS SQL Management Studio | Column Properties | Computed Column Specification | Formula
это далеко не запрос, а изменение структуры таблицы. И это действие имеет свой синтаксис и свои ограничения, никак не связанные с запросами. Короче, учите матчасть.
17 июн 16, 22:41    [19307690]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
mabanza
Member

Откуда:
Сообщений: 194
правильный проходящий.,

>это далеко не запрос, а изменение структуры таблицы
Тогда по-другому.

В таблицу можно добавить этим методом A+B. Среда сохранит это поле таблицы.
Это будет поле таблицы. Пока Ок?

В таблицу нельзя добавить select top 1 C from OtherTable where ...
Этот запрос возвращает скаляр. Не резалт сет. Единственное значение C, которое пресловутый Первейзив прекрасно делает вычислимым полем таблицы, а микрософт нет.

Вот, собсно, и все. Плюс неоходимость уходить то Первейзива и погружаться в эту задницу. Плюс хамоватая братва на этом форуме.
А так нормально. Пятница. Пока.
17 июн 16, 23:10    [19307772]     Ответить | Цитировать Сообщить модератору
 Re: Вычислимое поле. Как добавить в MS SQL Management Studio  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37069
Модератор: 2mabanza: Пока-пока. Заодно от хамов и задниц недельку отдохнете.


Сообщение было отредактировано: 17 июн 16, 23:15
17 июн 16, 23:13    [19307778]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить