我有一个表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地址失败,因为一个或多个对象访问此列。
我们如何解决这个问题......
答案 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);