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

sql修改主键类型

发布时间: 2022-02-01 11:05:44

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

有一需求,就是把表中作为主键字段的数据类型从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的键值类型的主属性怎么设置

sql的键值类型的主属性怎么设置?sql要怎么设置主键呢?本文以sql server数据库为例,讲解几种设置方式:
1)新建表时设置主键
2)修改表主键
3)sql语句删除主键
4)sql语句添加主键
5)sql语句修改主键
方法/步骤分步阅读
1
/8
打开【SQL Server Management Studio】管理工具,连接数据库
2
/8
【新建表时设置主键】- 打开新建表界面
1)展开要新建表的数据库
2)右键【表】菜单,依次选择【新建】->【表】
3
/8
【新建表时设置主键】- 设置主键
1)在“新建表界面”,加入两个测试列的行
2)选择任何一行,右键选择【设置主键】
3)联合主键设置:按住ctrl键,配合鼠标左键,可以多选几行,然后右键选择【设置主键】
4)添加列后,点击【保存】按钮,在弹出框中输入“表名称”,点击确定按钮即可
4
/8
【修改表主键】- 打开设计表界面
右键选择要修改的表,选择【设计】菜单,即可打开此表的设计界面,此时,可以修改列名、列类型、长度等等
5
/8
【修改表主键】- 修改主键
1)在“表设计”界面,右键任何一行,选择“设置主键”
2)调整好表属性后,点击“保存”按钮即可
3)联合主键设置:按住ctrl键,配合鼠标左键,可以多选几行,然后右键选择【设置主键】
4)对于有数据的表,如果修改后的主键存在数据重复行,则会提示修改失败,此时,需要视具体业务场景删除重复记录或者更改另外的列作为主键
6
/8
【sql语句删除主键】
1)点击sql server管理工具的菜单【新建查询】,打开查询窗口
2)在查询窗口中输入截图的命令删除主键
ALTER TABLE 表名 DROP CONSTRAINT [键名];
7
/8
【sql语句添加主键】
1)点击sql server管理工具的菜单【新建查询】,打开查询窗口
2)在查询窗口中输入截图的命令添加主键
ALTER TABLE 表名 ADD CONSTRAINT 键名 PRIMARY KEY ( 列名,多个列名用逗号分隔 );
3)添加主键之前,如果该表原来有主键,需要先删除主键,再添加,就等同于修改主键了
8
/8
【sql语句修改主键】
1)点击sql server管理工具的菜单【新建查询】,打开查询窗口
2)在查询窗口中输入截图的命令修改主键
3)如果表存在主键,需要先删除原主键。

③ sql 修改主键类型,如图将administrator 表中的adName字段修改为varchar(15) 类型怎么修改

Mysql

使用 CHANGE COLUMN 来修改列的数据类型,还必须 设置 列名。
使用 MODIFY COLUMN 不用输入2次列名。

mysql> ALTER TABLE test_tab
-> CHANGE COLUMN age age TINYINT;
Query OK, 0 rows affected (0.16 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> ALTER TABLE test_tab
-> MODIFY COLUMN age BIGINT NOT NULL;
Query OK, 0 rows affected (0.14 sec)

Records: 0 Duplicates: 0 Warnings: 0

这个不知道修改主键的情况下, 会不会报错了。 呵呵。

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

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

⑤ 请问如何修改SQL主键列的值

: "可以改,用update 就行,但是要避免主键值和表中现有数据冲突。 另,如果有其它表用该表主键做外键的话,也不能随便修改主键值"

⑥ SQL如何用语句更改字段的数据类型

SQL如何用语句更改字段可以用以下语句可以实现:

altertable表名altercolumn字段名变更后的字段类型。

注意:

但若是关键字段,带有主键,并且字段类型为用户自定义类型,具有默认值的情况下,用上述语句会出现错误。

例如:

现假设表为TABLE1,关键字段为FIELD1,主键为PK_FIELD1,关键字段的数据类型为用户自定义数据类型cha_field1,实际为CHAR(10),默认值为dbo.D_field1现要求将字段类型改为varchar(20),默认值去除错误提示如下:

服务器:消息5074,级别16,状态1,行1

对象'D_field1'依赖于列'field1'。

服务器:消息5074,级别16,状态1,行1

对象'PK_field1'依赖于列'field1'。

服务器:消息4922,级别16,状态1,行1

ALTERTABLEALTERCOLUMNfield1失败,因为有一个或多个对象访问此列。

⑦ sqlserver数据库修改主键类型

要是这个表的主键是另一个表的外键的话,两个都需要改,改成相同的,先改外键的那个表

⑧ sql 修改字段类型

alter table 表名 alter column 字段名 type not null。

1、修改字段名:

alter table 表名 rename column A to B。

2、修改字段默认值:

alter table 表名 add default (0) for 字段名 with values,如果字段有默认值,则需要先删除字段的约束,在添加新的默认值。

3、增加字段:

alter table 表名 add 字段名 type not null default 0 。

5、删除字段:

alter table 表名drop column 字段名。

(8)sql修改主键类型扩展阅读:

alter其他用法

1.重命名表

ALTER TABLE 【表名字】 RENAME 【表新名字】

2.删除表中主键

Alter TABLE 【表名字】 drop primary key

3.添加主键

ALTER TABLE sj_resource_charges ADD CONSTRAINT PK_SJ_RESOURCE_CHARGES PRIMARY KEY (resid,resfromid)

4.添加索引

ALTER TABLEsj_resource_charges add index INDEX_NAME (name);

5.添加唯一限制条件索引

ALTER TABLE sj_resource_charges add unique emp_name2(cardnumber);

6.删除索引

alter table tablename drop index emp_name;

7.联合唯一索引

ALTER TABLE tablenameADD UNIQUE INDEX INDEX_NAME(school_id, settlement_time);

alterignoretable tablenameadniqueindex(user_id,user_name)

⑨ 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语句如何修改主键,请举个小例子.

补充2:我找到了约束名,已经删除,但在添加的时候又出问题了,意思说不能在可以为空的字段上创建primary key约束,那么应该怎样改?????????

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

不能在可以为空的字段上创建primary key约束的。。