Мне нужно изменить тип данных столбца в SQL Server. Итак, каковы ограничения в работе?Изменение типа данных столбца в SQL Server
Я знаю, что мне нужно удалить индекс и другие ограничения?
Должен ли я удалить ненужную проверку?
Какие еще вещи необходимо проверить перед изменением типа данных?
Мне нужно удалить ограничения и изменить таблицу, а затем снова добавить ограничения.
Это правильный способ сделать это?
DROP INDEX UX_1_COMPUTATION ON dbo.Computation
ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(25)
CREATE UNIQUE INDEX UX_1_COMPUTATION ON dbo.Computation (ComputationID);
Здесь UX_1_COMPUTATION
уникальное имя индекса, Computation
это имя таблицы и ComputationID
это имя столбца.
Это правильно?
Update
Так, если есть composite index
там, где более чем один столбец участвует, Как я с этим бороться? Эти индексы содержат столбец первичного ключа с столбцами не первичного ключа.
Когда я попытался выполнения следующее заявление
DROP INDEX UX_2_COMPUTATION ON dbo.Computation
ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(25)
CREATE UNIQUE INDEX UX_2_COMPUTATION ON dbo.Computation (ComputationID , ComputeGuid);
Он бросает следующее исключение
SQL DROP INDEX UX_2_COMPUTATION
ON dbo.Computation
ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(10) Not Null
CREATE INDEX UX_2_COMPUTATION
ON dbo.Computation (ComputationID , ComputeGuid): The object
'PK_Computation' is dependent on column 'ComputationID '.:
Caused By: Error executing SQL DROP INDEX UX_2_COMPUTATION
ON dbo.Computation
ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(10) Not Null
CREATE INDEX UX_2_COMPUTATION
ON dbo.Computation (ComputationID , ComputeGuid): The object
'PK_Computation' is dependent on column 'ComputationID '.:
Caused By: The object 'PK_Computation' is dependent on column 'ComputationID '.
Спасибо,
-Sam
Было бы полезно знать, что вам нужно изменить его с, и что? Каков тип раньше - что это должно быть после? Это изменение здесь создаст ** nullable ** 'NVARCHAR (25)' column - это то, что вы хотите? –
@marc_sIt не пустой столбец. Мне нужно создать не пустой столбец – Sam
Итак, это должно быть как 'ALTER TABLE dbo.Comput ALTER COLUMN ComputationID NVARCHAR (25) Не null' right? и нет никаких проблем с синтаксисом для индекса? – Sam