SQL - Как ИЗМЕНИТЬ СТОЛБЕЦ на вычисляемом столбце

Я работаю с SQL Server 2008. Действительно ли возможно изменить вычисляемый столбец, на самом деле не отбрасывая столбец и затем добавляя его снова (который я могу взяться за работу)? Например, у меня есть эта таблица:

CREATE TABLE [dbo].[Prices](
[Price] [numeric](8,3) NOT NULL,
[AdjPrice] AS [Price] / [AdjFactor],
[AdjFactor] [numeric](8,3) NOT NULL)

Позже понимание, что у меня есть потенциальное деление нулевой ошибкой, я хочу изменить столбец [Adjprice] для обработки этого, но если я просто отбрасываю столбец и добавляю его снова, я теряю порядок столбцов.

Я хочу сделать что-то как:

ALTER TABLE dbo.[Prices]
ALTER COLUMN [AdjPrice] AS (CASE WHEN [AdjFactor] = 0 THEN 0 ELSE [Price] / [AdjFactor] END)

Но это не корректно. Если бы это возможно, или существует другое решение, я ценил бы справку.

14
задан David Oneill 16 February 2010 в 16:37
поделиться

3 ответа

НЕТ

если это вычислено, что за такое, отбрасывая его и добавляя снова? это ПРОДОЛЖАЕТСЯ и есть миллион строк?

0
ответ дан 1 December 2019 в 14:11
поделиться

Я не думаю, что вы можете изменить этот столбец без удаления. Так что отбросьте столбец, а затем добавьте новый столбец.

Если вы найдете другой способ сделать это, пожалуйста, сообщите мне.

0
ответ дан 1 December 2019 в 14:11
поделиться

К сожалению, вы не можете сделать это, не отбросив сначала столбец.

Из MSDN :

ALTER COLUMN
Указывает, что именованный столбец должен быть изменен или изменен. ALTER COLUMN не допускается, если уровень совместимости 65 или ниже. Дополнительные сведения см. В разделе sp_dbcmptlevel (Transact-SQL).

  • Измененный столбец не может быть одним из следующих:

    • Вычисляемый столбец или используемый в вычисляемом столбце.
19
ответ дан 1 December 2019 в 14:11
поделиться
Другие вопросы по тегам:

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