Как я могу настроить простое вычисляемое поле в SQL Server?

Я соглашаюсь с предыдущим плакатом, что изменение цвета className является более симпатичным подходом. Мой аргумент однако - то, что className может рассматриваться как определение, "почему Вы хотите, чтобы фон был этим или что цвет".

, Например, делая это красный не просто, потому что Вы хотите это красный, но и потому что Вы хотели бы сообщить пользователям ошибки. По сути, установка имени класса AnErrorHasOccured на теле была бы моей предпочтительной реализацией.

В css

body.AnErrorHasOccured
{
  background: #f00;
}

В JavaScript:

document.body.className = "AnErrorHasOccured";

Это оставляет Вас опциями моделирования большего количества элементов согласно этому className. И как таковой, установкой a className Вы отчасти даете странице определенное состояние.

14
задан Ryan 2 July 2013 в 18:49
поделиться

4 ответа

ALTER TABLE ACCOUNT_TABLE 
ADD ACCT_NUMBER AS MAIN_ACCT+'-'+GROUP_ACCT+'-'+SUB_ACCT PERSISTED

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

Лучший способ сделать это будет во многом зависеть от вашего использования и от того, какая производительность вам нужна. Если у вас мало записей или вычисляемый столбец не будет вызываться так часто, вам может не понадобиться постоянный столбец, но если вы часто запускаете отчеты со всеми записями за год или другими большими наборами данные, вы можете обнаружить, что постоянный вычисляемый столбец лучше подходит для вас. Как и в случае с любой задачей подобного рода, единственный способ узнать, что лучше всего работает в вашей ситуации, - это проверить.

26
ответ дан 1 December 2019 в 06:48
поделиться
ALTER TABLE ACCOUNT_TABLE ADD ACCT_NUMBER AS MAIN_ACCT+'-'+GROUP_ACCT+'-'+SUB_ACCT;

столбец не сохраняется в таблице, он будет автоматически создаваться при каждой ссылке на него. Вы можете добиться того же результата, используя представление. Если вы используете предикаты фильтрации или упорядочивание вычисляемого столбца и хотите добавить к нему индекс, см. Создание индексов для вычисляемых столбцов .

5
ответ дан 1 December 2019 в 06:48
поделиться

Это отличный кандидат для представления.

CREATE VIEW vwACCOUNT_TABLE
AS

SELECT MAIN_ACCT+'-'+GROUP_ACCT+'-'+SUB_ACCT AS ACCT_NUMBER 
FROM ACCOUNT_TABLE

GO

--now select from the View
SELECT ACCT_NUMBER FROM  vwACCOUNT_TABLE
8
ответ дан 1 December 2019 в 06:48
поделиться

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

3
ответ дан 1 December 2019 в 06:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: