【发布时间】:2014-03-20 11:12:45
【问题描述】:
如果创建时为空,我可以更新列的长度
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 会说
消息 4902,第 16 级,状态 1,第 1 行
找不到对象“MYCOLUMN2”,因为它不存在或您没有权限。
我有权限,因为我是管理员并且表格的列确实存在。
感谢您的回复... 这是表结构
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]
【问题讨论】:
-
将您的表格也发布到您的问题中
-
您确定您的表中有“mycolumn2”列吗?
-
看起来列名拼写错误或在表中不存在。
-
只需使用
ALTER TABLE dbo.MYTABLE ALTER COLUMN MYCOLUMN2 NVARCHAR(13) NOT NULL- 如果之前是NOT NULL,只需在您的ALTER TABLE命令中再次使用NOT NULL....
标签: sql-server null alter-table