当前位置:首页 » 编程语言 » sql修改表的主键字段
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql修改表的主键字段

发布时间: 2023-02-08 00:13:04

Ⅰ 如何更改数据表主键字段的数据类型

有一需求,就是把表中作为主键字段的数据类型从int 转换为 uniqueidentifier。我们可能会想到直接通过Microsoft sql Server Management Studio (MSSMS)修改表结构,删除原来的主键,增加一个数据类型为uniqueidentifier的字段作为主键,并对它设置not null default(newid()) 。
对于单独的表,主键没有被其他表作为外键,可以这样修改,但一旦存在外键时,我们就不能这样修改了。至少我们需要通过编写T-SQL语句来实现,基本方法是:
1.删除外键约束
2.修改表字段类型(删除主键约束-->新增uniqueidentifier类型的字段(default(newid())),并设置为主键)
3.在其他表(原主键字段,在其他表作为外键的表)新增uniqueidentifier类型的字段(default(newid()))。
4.更新数据
5.字段重新命名
6.重新创建外键
当然你还要考虑索引是否要重新创建,如果我们要修改一大堆的表,那么需要写一大堆的T-SQl代码。
为了解决这一问题,这里我为此特别写了一个存储过程up_ModifyPrimaryColumn来实现表主键数据类型转换。
http://blog.csdn.net/DVD_01/article/details/8277301?utm_source=jiancool

Ⅱ 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]) --重新创建主键

Ⅲ 如何使用SQL语句修改表内的数据

修改表中内容

修改用到update语句,语句格式为:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

即 update 员工表 set 部门id=01 where 员工id=0004

SQL联合主键

  • Create Table 表名 (字段名1 Int Not Null,

  • 字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),

    字段名3????

    字段名N???? )

(3)sql修改表的主键字段扩展阅读

主键是数据库表的一个重要属性,建立主键可以避免表中存在完全相同的记录,也就是说主键在一张表中的记录值是唯一的。 建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍。

  1. 在数据库提供的GUI环境中建立(以SQL7为例)。输入表信息后按Ctrl键同时选中多行,然后点上面的主键按钮就行了。

  2. 通过SQL语句执行建立。又分两种,一是在建表语句中直接写,二是建表之后更改表结构。

    在建表语句中直接写:

  3. Create Table 表名 (字段名1 Int Not Null,

字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),

字段名3????

字段名N???? )

Ⅳ SQL Server怎样用sql语句修改一个表中主键字段(它同时又是另一个表的外键及主键)的字段类型

要修改主键和外键的话需要先指定主键和外键的名称,以后修改时要用到。
这是的主键和外键为:

修改的sql语句:
--修改主键的名称PK_myTest为PK_myTest22
alter table myTest drop constraint PK_myTest
alter table myTest add constraint PK_myTest22 primary key(aa)
--修改外键的名称fk_myTest为fk_myTest22
alter table myTest drop constraint fk_myTest
alter table myTest add constraint fk_myTest22 foreign key(bb) references test!

Ⅳ SQL数据库主键修改问题

这个问题想多了就变复杂了。
首先要确定除了你自己外没有人操作数据库;
更新表A中的主键、和另一个字段;
更新B、C表中的AOID;
不需要关联,都直接增加6000即可。

update A set oid=oid+6000,recipientcertificateid=recipientcertificateid+6000;
update B set AOID=AOID+6000;
update C set AIOD=AIOD+6000;

原理:
A表直接将字段增加6000,而B与C表中外键需要相应修改,同时全表更新外键增加6000即可。

那就建一张临时表,把数据导到临时表,然后清空本表,再重新插入,插入的时候用新的OID规则。

Ⅵ sql怎么设置主键

1.主键语法
①创建时:create table sc (
studentno int,
courseid int,
score int,
primary key (studentno) );
②修改时:ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名);
前提是原先没有设置主键。
2.外键语法
①创建时:create table sc (
studentno int,
courseid int,
score int,
foreign key (courseid) );
②修改时:
ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ;
3.使用组合主键
如果一列不能唯一区分一个表里的记录时,可以考虑多个列组合起来达到区分表记录的唯一性,形式
①创建时:create table sc (
studentno int,
courseid int,
score int,
primary key (studentno,courseid) );
②修改时:alter table tb_name add primary key (字段1,字段2,字段3);
前提是原来表中没有设置主键,若原先已有主键则会报错。

Ⅶ 如何更改SQL数据库中的主键数据

设计数据库结构时,应该避免主键字段有意义,比如用学生学号、人的身份证号做主键都不好,因为这些数据后期都可能要改动,最好用一个序列号做主键去关联所有的子表,这样就不需要改主表主键值了。
你这个问题可以这样解决,先把要改主键的记录复制一条,主键用新值,然后把所有子表的对应记录改掉,最后删除主表的原记录。