sql - T-SQL 修改列
问题描述
我想修改此列,但它在 T-SQL 中不起作用:
create table logininfo
(
ID int primary key ,
modepasse varchar(10) not null,
)
我想将ID
的数据类型更改为varchar(20)
.
当我使用这个命令时:
alter table logininfo
alter column ID varchar(10)
它不起作用。
请帮我
解决方案
您应该先删除Primary key
,最好按照以下语法创建表:
DROP TABLE IF EXISTS logininfo
CREATE TABLE logininfo
(
ID INT,
modepasse VARCHAR(10) NOT NULL,
CONSTRAINT PK_logininfo PRIMARY KEY (ID)
)
如您所见,您可以PK
在定义列并命名它们(有意义的名称)之后定义其他约束,现在您必须先删除 pk 然后更改列 ID
ALTER TABLE logininfo
DROP CONSTRAINT PK_logininfo ;
现在您可以更改所需的列:
ALTER TABLE logininfo
ALTER COLUMN ID NVARCHAR(10) NOT NULL
如果您想再次将此列用作主键,则必须将其视为 NOT NULL
现在将其设置为主键:
ALTER TABLE logininfo
ADD CONSTRAINT PK_logininfo PRIMARY KEY (ID)