SqlServer自增主键修改为普通GUID主键
亲测可行
--1.去除自增主键的键
--将int类型的自增主键设置int类型的非主键字段
alter table HY_user drop constraint PK_HY_user;
go
--2.去除字段约束
--删除主键字段对应的约束,如果存在约束直接删除主键字段会报错
--可以让这个此次所写的全部语句可以重复执行
if exists(select * from sysobjects where name ='DF_HY_user')
alter table HY_user drop constraint DF_HY_user;
go
--3.删除字段
--删除处理好的非主键的int字段(原主键)
alter table HY_user drop column h_ID;
go
--4.添加新的字符串类型的填充数据为guid的字段
--添加默认值会同时添加默认值约束,将约束的名称设置为DF_HY_user,不然sqlserver会随机默认一个,不方便进行管理
alter table HY_user add h_ID varchar(50) not null
constraint DF_HY_user default LOWER(REPLACE(LTRIM(NEWID()),'-',''));
go
--5.将新添加的字段设置为主键
alter table HY_user with nocheck add constraint PK_HY_user primary key nonclustered(h_ID);
go