在SQL Server 2005中将字段类型从nvarchar(255)更改为nvarchar(Max)

时间:2013-06-04 04:35:27

标签: sql-server-2005

我想改变表stk020中的列类型。所以,我使用了这个查询..

ALTER TABLE [stk020] 
ALTER COLUMN [t16] nvarchar(Max) not null 

[t16]的原始列类型为nvarchar(255)。我收到此错误

  

Msg 5074,Level 16,State 1,Line 1
  对象'DF_ STK020 _t16__725CC34D'取决于列't16'。
  Msg 4922,Level 16,State 9,Line 1
  ALTER TABLE ALTER COLUMN t16失败,因为一个或多个对象访问此列。

任何解决方案?

1 个答案:

答案 0 :(得分:4)

在更改数据类型之前,必须先删除我们认为是列上的Default约束的内容:

Alter Table stk020 Drop Constraint DF_STK020_t16__725CC34D
GO
Alter Table stk020 Alter Column t16 nvarchar(max) not null
GO
Alter Table stk020 Add Constraint DF_STK020_t16__725CC34D
    Default ... For t16