update nvarchar not null field length

时间:2014-03-20 11:12:46

标签: sql-server null alter-table

如果列的长度在创建时为null,我可以更新列的长度

MYCOLUMN1 nvarchar(12) NULL

我的查询:

Alter table MYTABLE ALTER Column MYCOLUMN1 nvarchar(13) NULL

但是如果列不为空,我怎么能改变长度呢?

MYCOLUMN2 nvarchar(12) NOT NULL

Alter table MYTABLE ALTER Column MYCOLUMN2 nvarchar(13) NOT NULL

当我尝试这样做时,SQL Server说

  

Msg 4902,Level 16,State 1,Line 1
  找不到对象“MYCOLUMN2”,因为它不存在或您没有权限。

我有权限,因为我是admin,而table的列确实存在。

伙计们感谢您的回复...... 这是表结构

CREATE TABLE [dbo].[MYTABLE](
    [MyKey] [int] IDENTITY(1,1) NOT NULL,
    [mycolumn1] [nvarchar](12) NULL,
    [mycolumn2] [nvarchar](12) NOT NULL,

 CONSTRAINT [PK_MYTABLE] PRIMARY KEY CLUSTERED 
(
    [MyKey] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

1 个答案:

答案 0 :(得分:0)

列名称区分大小写。请尝试

Alter table MYTABLE ALTER Column [mycolumn2] nvarchar(13) NOT NULL

我已经尝试过,它在sqlserver2012上运行正常。