今天在设计公司的数据库时,发现了一个很奇葩的事情,SQL server在建成之后不能使用界面化工具直接设置主键,我发现这个功能很鸡肋啊,可能在SQL server设计时候是为了保持数据库的安全和纯净性,但是这个设计给使用人员造成了很大的不变,导致现在只能使用语句修改,下面我来分享一下语句如何设置修改主键。
设置主键并置为非空
要先确实你要设置主键的的那列不为空,如果你的列为空,以下代码可以帮助你设为空并且添加主键。
/*Table_Member是数据表的名字,StudentID 是要设为主键的列,bigint 是主键列的数据类型*/
ALTER TABLE Table_Member ALTER COLUMN StudentID bigint NOT NULL;/*Table_Member是数据表的名字,StudentID 是要设为主键的列*/
ALTER TABLE Table_Member WITH NOCHECK
ADD CONSTRAINT PK_Table_Member PRIMARY KEY (StudentID);
上述代码我相信已经说的很明确了!!!
更改已经建好的表中主键列的字符类型
同样的,这个操作也要分为两步,在SQL server 的设计理念中,主键列不可更改数据类型,如果要将不是主键的列更改字符类型,直接跳到第二步。
ALTER TABLE [表名] DROP CONSTRAINT [主键约束名]
ALTER TABLE [表名] ALTER COLUMN [列名] [数据类型]