Можно ли изменить длину столбца в представлении в SQL Server 2000? - PullRequest
4 голосов
/ 05 января 2012

Не уверен, разрешено ли это вообще, но если да, может кто-нибудь сказать мне, что такое T-SQL? Я пробовал следующее, но безрезультатно.

alter [View_Name]
alter column [Coln_Name] [New size/length] not null
GO

Любая помощь приветствуется. Спасибо!

Ответы [ 5 ]

5 голосов
/ 05 января 2012

Не напрямую.

Это автоматически выводится из выражения столбца.Вы можете CAST выражение в списке View SELECT для определенного типа данных.

3 голосов
/ 05 января 2012

Вам потребуется изменить длину столбца в базовой таблице или изменить инструкцию SELECT, формирующую представление, на CAST или CONVERT столбца с типом данных другой длины.

1 голос
/ 01 сентября 2014

Вы не можете изменить размер столбца в представлении, так как представление получено из другой таблицы. Поэтому, если вам нужно изменить размер столбца, измените размер столбца таблицы. Чтобы изменить размер столбца, используйте ALTER TABLE как:

ALTER TABLE [Table_Name]

ALTER COLUMN [Column_Name] Data_Type (Size)

После изменения размера столбца вам может понадобиться отбросить представление и заново создать его.

1 голос
/ 05 января 2012

Представления - это способы просмотра данных в других таблицах;обычно данные - это просто то, что находится в базовой таблице, поэтому вам нужно изменить там столбец.

Однако у вас могут быть представления, которые выполняют такие вещи, как cast () или convert ();это, как правило, плохая идея, потому что данные необходимо выбирать заново каждый раз, когда используется представление, и эти операции увеличивают накладные расходы.В дизайне представления вы можете принять решение о приведении к другому типу данных или выполнить любое преобразование по своему усмотрению - но оно имеет накладные расходы и не изменит исходных данных.

Если вы знаете, что такое текущийпросмотр выбирает, вы можете использовать что-то вроде:

Alter view Viewname[cloumn] as Select cast(original_data as varchar(n)) from Original_Table
0 голосов
/ 19 февраля 2014

Я просто столкнулся с той же ситуацией. То, что я сделал, было:

  1. Изменить размер столбца в таблице, на которую смотрит представление.

  2. Создайте сценарий для воссоздания вида (если у вас его еще нет).

  3. Удалить вид

  4. Используйте сценарий для воссоздания вида.

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

...