sql主键的值修改
1. 请问如何修改sql主键列的值
: "可以改,用update 就行,但是要避免主键值和表中现有数据冲突。 另,如果有其它表用该表主键做外键的话,也不能随便修改主键值"
2. 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_NAME = UPPER('表名') AND CONSTRAINT_TYPE ='P'
--【2.删除主键约束】
ALTER TABLE 表名 DROP CONSTRAINT 约束名
--ORACLE
--删除主键连同索引
ALTER TABLE 表名 DROP CONSTRAINT 约束名 CASCADE DROP INDEX;
或者
ALTER TABLE 表名 DROP PRIMARY KEY CASCADE DROP INDEX;--【3.修改字段】
--【先把这一列的值备份到临时列里,再把这一列update成null,再修改类型,再把数据拷贝回来】
--SQLSERVER
--默认值单独处理,关联约束
--默认值的变更涉及到约束,如有约束,需要先查询出越是再进行删除
ALTER TABLE 表名 DROP CONSTRAINT 约束名
ALTER TABLE 表名 ALTER COLUMN 字段名 字段类型(长度精度) 是否为空
ALTER TABLE 表名 ADD CONSTRAINT 约束名 DEFAULT 默认值 FOR 字段名
--ORACLE
--删除默认值:default null
ALTER TABLE 表名 MODIFY COLUMN 字段名 VARCHAR2(20) DEFAULT ' ' NOT NULL--【4.新增主键】
--指定主键名字
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY (F1,F2);
--未指定主键名字
ALTER TABLE 表名 ADD PRIMARY KEY (F1,F2)
3. sql server 2000如何修改主键字段
最简单的方法是用企业管理器直接修改数据类型。 如下是使用T-SQL(SQL 2000)修改的语句:
alter table TableName drop constraint PK_TableName --PK_TableName原主键名称,删除原来的主键
go
alter table TableName alter column [username] varchar(10) not null --修改数据类型
go
alter table TableName add constraint PK_TableName primary key clustered([username]) --重新创建主键
4. 用SQL脚本修改表的的主键问题
不知道你什么数据库.
假如是
SQL
Server
的话,
主键必须先非空
1>
CREATE
TABLE
test_tab
(
2>
id
INT,
3>
name
VARCHAR(10),
4>
age
INT,
5>
val
VARCHAR(10)
6>
);
7>
go
1>
ALTER
TABLE
test_tab
2>
ADD
CONSTRAINT
pk_test_tab
PRIMARY
KEY(id);
3>
go
消息
8111,级别
16,状态
1,服务器
HOME-BED592453C\SQLEXPRESS,第
1
行
无法在表
'test_tab'
中可为空的列上定义
PRIMARY
KEY
约束。
消息
1750,级别
16,状态
1,服务器
HOME-BED592453C\SQLEXPRESS,第
1
行
无法创建约束。请参阅前面的错误消息。
首先对
id
这个列,增加一个
NOT
NULL
约束,然后再设置为主键。
1>
ALTER
TABLE
test_tab
2>
ALTER
COLUMN
id
INT
NOT
NULL;
3>
go
1>
ALTER
TABLE
test_tab
2>
ADD
CONSTRAINT
pk_test_tab
PRIMARY
KEY(id);
3>
go
5. 主键列能否修改sql server数据库中
主键的要求是不能为空,不能存在两行值相同,只要你修改后的值不与别的行的值相同,可以修改。
6. sql语句如何修改主键,请举个小例子.
补充2:我找到了约束名,已经删除,但在添加的时候又出问题了,意思说不能在可以为空的字段上创建primary key约束,那么应该怎样改?????????
你修改的为主键的列 以前在建表的时候默认是可以NULL的,你把DEFAULT NULL
或者把表结构上的对应列的NULL的勾去掉就可以加主键了
不能在可以为空的字段上创建primary key约束的。。