更改列数据类型

时间:2014-01-10 06:41:27

标签: sql-server sql-server-2008

我有一个表dbo.ExceptionMessage,现在我想将列数据类型nvarchar(100)更改为nvarchar(MAX)。我使用alter query来改变这个

ALTER TABLE dbo.ExceptionMessage ALTER COLUMN   Address nvarchar(MAX)

并且在执行此查询时会显示一些错误,例如。

  

对象'DF_ExceptionMessage_Address'依赖于列'Address'。

     

ALTER TABLE ALTER COLUMN地址失败,因为一个或多个对象访问此列。

我们如何解决这个问题......

4 个答案:

答案 0 :(得分:4)

首先删除所有约束像这样

ALTER TABLE TableName DROP CONSTRAINT [DF__TableName__ColumnName__FieldName] 

然后执行更改

ALTER TABLE dbo.ExceptionMessage ALTER COLUMN   Address nvarchar(MAX)

然后重新输入约束

答案 1 :(得分:1)

您必须找出DF_ExceptionMessage_Address的约束类型,删除它,更改列类型,然后在需要时重新创建约束。

答案 2 :(得分:0)

你先试试:

ALTER TABLE <tablename> DROP CONSTRAINT <Con_Name>;

然后再做你的改变

ALTER TABLE dbo.ExceptionMessage ALTER COLUMN   Address nvarchar(MAX)

再次添加约束

答案 3 :(得分:0)

帮助你改变

   alter table TableName 

     alter column ColumnName nvarchar(200);