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 FORSELECT 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.colidWHERE a.xtype='U' AND b.xtype='PK' OPEN Cursor_Update_Table_PK_NameFETCH NEXT FROM Cursor_Update_Table_PK_Name INTO @Table_Name,@Col_Name,@PK_Name_Old,@PK_Name_NewWHILE @@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 ENDCLOSE Cursor_Update_Table_PK_NameDEALLOCATE Cursor_Update_Table_PK_Name使用以上代碼可以批量將表的主鍵名進行修改
3.你可以可以對以上腳本進行修改,比如批量給表的前面增加某個字串,聰明的你肯定知道怎么做的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/11310.html
標籤:SQL Server
上一篇:MyBatis
