sql语句如何修改主键,请举个小例子.

如题
一楼的不对,我试了下:
表depart有部门号和部门名两个字段.均符合做为主键条件.建表时用部门号做为主键,现在想改成部门名.
我用语句alter table depart drop constraint 部门号
提示错误:部门号不是约束.
请就这个题目编一个吧.能通过的程序.谢谢.
补充2:我找到了约束名,已经删除,但在添加的时候又出问题了,意思说不能在可以为空的字段上创建primary key约束,那么应该怎样改?????????

如果表之前有主键则先删除:

alter table 表名 drop constraint 主键名

修改主键:

alter table 表名 add constraint 主键名 primary key (column1,column2,....,column)

注意:这里的主键名是自己定义的一个字符串,可以不是表中字段名(习惯写成:PK_表名 的格式),不过要牢记啊,删除的时候用到的也是这个名!括号中的才是表中存在的字段。

主键的值也可以改变,级联更新是有用的

参考资料:http://www.rs100.cn

温馨提示:内容为网友见解,仅供参考
第1个回答  2008-08-21
补充2:我找到了约束名,已经删除,但在添加的时候又出问题了,意思说不能在可以为空的字段上创建primary key约束,那么应该怎样改?????????

你修改的为主键的列 以前在建表的时候默认是可以NULL的,你把DEFAULT NULL
或者把表结构上的对应列的NULL的勾去掉就可以加主键了

不能在可以为空的字段上创建primary key约束的。。
第2个回答  2008-08-21
你检查一下!
语法是没错的,只不过你的主键约束名不是那个!你仔细检查一下!这个也没什么好复杂的,就是约束名不对才这样。

关于你的问题补充2:
你先要有清楚的概念,什么叫主键??!!主键当然不能为空了!所以你只要把该字段改为“是否可为空”为“否”即可
第3个回答  2018-05-11
主键名和列名不一样,需要select constraint_name from user_cosntraints where table_name='TABNAME';
再用drop constraint 后面跟上查好的主键名删除约束。
第4个回答  2018-09-06

    查找主键名称,直接点击右边表下面的“键”(或者右键点击表,选择设计,右键点击任意列名,选择索引/键,这里就可以查看默认主键名称)

    use database

    go

    alter table depart

    drop constraint 查询出来的主键名 --至此删除主键完毕

    alter table depart

    alter column 部门名 varchar(20) not null --修改部门名非空

    alter table depar

    add constraint 自己设置的主键名 primary key (部门名称)

sql语句如何修改主键,请举个小例子.
修改主键:alter table 表名 add constraint 主键名 primary key (column1,column2,...,column)注意:这里的主键名是自己定义的一个字符串,可以不是表中字段名(习惯写成:PK_表名 的格式),不过要牢记啊,删除的时候用到的也是这个名!括号中的才是表中存在的字段。主键的值也可以改变,级联更新是...

SQL怎样用命令设置主键
可以参考下面的方法:建表的时候,可以直接在列名后面增加主键约束,比如:IDchar(5)primarykey。对已经建表的列增加主键约束:alter table 表名 add constraint 约束名 primary key (ID)

SQL怎样用命令设置主键
根据你的问题,可以这样做:1、在已经建好的表上添加主键:alter table b add constrant id_pk primary key(id);2、在创建表时就设置好主键:create table b (id number(2),number varchar2(10),age number(3),grade varchar2(3),constraint id_pk primary key(id));...

sql怎么设置主键
foreign key (courseid) );②修改时:ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ;3.使用组合主键 如果一列不能唯一区分一个表里的记录时,可以考虑多个列组合起来达到区分表...

SQL语句中,怎么修改主键的值,比如我删了5到8行,下次插入就是第9行了...
主键一般是不设置自增的,你可以按照这样在不删除表的情况下,修改主键的属性,修改主键的属性必须先删除主键约束,否则修改不了,步骤如下:1,删除 alter table name drop constraint PK_table name 2,修改 alter table name alter column 列名 属性 3,添加 alter table name add constraint PK_...

sql server2005用SQL语句修改有主外键关系的字段
楼主这种, 修改 主表数据, 同步修改 外键关联表数据的情况。可以通过在创建外键的时候, 设置 UPDATE CASCADE 来进行处理。下面是一个例子 -- 创建测试主表. ID 是主键.CREATE TABLE test_main ( id INT NOT NULL, value VARCHAR(10), PRIMARY KEY(id) );-- 创建测试...

在sql中怎样设置主键语法
CREATE TABLE TABLE as <SELECT 语句> (需注意的是复制表不能复制表的约束);示例:CREATE TABLE test AS SELECT * FROM emp;会将表emp的数据一并复制到test中,但约束没有复制.如果只复制表的结构不复制表的数据则:CREATE TABLE test as (SELECT * FROM emp WHERE 1=2);或者 CREATE TABLE test...

SQL语句如何修改主键字段的字段类型类型
首先,修改主键字段的字段类型,肯定是要先删除主键才能操作的 --【1.查找主键】--SQLSERVER select name as pkName from dbo.sysobjects where xtype='PK' and parent_obj=(select id from dbo.sysobjects where name='表名')--ORACLE SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_...

sql数据库如何设置主键自增长
1、打开数据库客户端,点击连接上你的数据库。2、在对应的库上,点击展开表视图。3、右键点击要设置的表,点击‘表设计’4、打开表设计页面,点击选中主键字段。5、点击后,在下方就会出现这个字段的设置,点击勾选上‘Auto Increment’就行了,这个就是自增长的属性。

在sql sql server怎样用代码设置两个主键
其实很简单的,举个例子说明如何设置两个主键 --创建学生表 CREATE TABLE 学生表 (学号 int NOT NULL PRIMARY KEY (学号),姓名 nvarchar(20) NOT NULL,性别 bit,出生日期 int not null,系编码 int not null )--创建课程表 CREATE TABLE 课程表 (课程号 int NOT NULL PRIMARY KEY (课程号),...

相似回答