1.我们在创建sqlserver得数据表的主键的时候,有时会出现,后面加一串随机字符串的情况,如图所示:
2.如果你有强迫症的话,可以使用以下sql脚本进行修改,将主键的名称修改为pk_表名.
--将表的主键名统一规范为pk_表名 declare @pk_name_old varchar(100),@table_name varchar(100),@pk_name_new varchar(100),@col_name varchar(100) declare cursor_update_table_pk_name cursor for select a.name as 'tbl_name', e.name as 'col_name', b.name, 'pk_'+a.name as 'new_pk_name' from sysobjects as a --对象表,结合a.xtype='u'条件,查用户表 left join sysobjects as b --对象表,结合b.xtype='pk'条件,查主键约束 on a.id=b.parent_obj left join sysindexes as c --索引表,根据(主键)约束名称匹配,查对应字段索引 on a.id=c.id and b.name=c.name left join sysindexkeys as d --索引中对应键、列的表,根据索引匹配,查字段id on a.id=d.id and c.indid=d.indid left join syscolumns as e --字段表,根据字段id匹配,查字段名称 on a.id=e.id and d.colid=e.colid where a.xtype='u' and b.xtype='pk' open cursor_update_table_pk_name fetch next from cursor_update_table_pk_name into @table_name,@col_name,@pk_name_old,@pk_name_new while @@fetch_status = 0 begin print ''+@table_name -- 存在主键约束,则删除 --if exists(select * from sysobjects where name=@pk_name_old and xtype='pk') exec('alter table '+@table_name+' drop constraint '+@pk_name_old) -- 重新添加主键约束 exec('alter table '+@table_name+' add constraint '+@pk_name_new+' primary key ('+@col_name+') ') fetch next from cursor_update_table_pk_name into @table_name,@col_name,@pk_name_old,@pk_name_new end close cursor_update_table_pk_name deallocate cursor_update_table_pk_name
使用以上代码可以批量将表的主键名进行修改
3.你可以可以对以上脚本进行修改,比如批量给表的前面增加某个字符串,聪明的你肯定知道怎么做的。