熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

創建和修改 PRIMARY KEY 約束

2022-06-13   來源: Windows系統管理 

  一個 PRIMARY KEY 約束可以
  
  作為表定義的一部分在創建表時創建
  
  
  添加到尚沒有 PRIMARY KEY 約束的表中(一個表只能有一個 PRIMARY KEY 約束)
  
  
  如果已有 PRIMARY KEY 約束則可對其進行修改或刪除例如可以使表的 PRIMARY KEY 約束引用其它列更改列的順序索引名聚集選項或 PRIMARY KEY 約束的填充因子定義了 PRIMARY KEY 約束的列的列寬不能更改
  
  
  說明 若要使用 TransactSQL 或 SQLDMO 修改 PRIMARY KEY必須先刪除現有的 PRIMARY KEY 約束然後再用新定義重新創建
  
  當向表中的現有列添加 PRIMARY KEY 約束時Microsoft® SQL Server&#; 檢查列中現有的數據以確保現有數據遵從主鍵的規則
  
  無空值
  
  
  無重復值
  如果 PRIMARY KEY 約束添加到具有空值或重復值的列上SQL Server 不執行該操作並返回錯誤信息不能添加違背上述規定的 PRIMARY KEY 約束
  
  SQL Server 自動創建唯一的索引來強制 PRIMARY KEY 約束所要求的唯一性如果表中不存在聚集索引或未明確指定非聚集索引則將創建唯一的聚集索引強制 PRIMARY KEY 約束
  
  
  
  重要 當 PRIMARY KEY 約束由另一表的 FOREIGN KEY 約束引用時不能刪除 PRIMARY KEY 約束要刪除它必須先刪除 FOREIGN KEY 約束
  
  
  在創建表時創建 PRIMARY KEY 約束
  
   TransactSQL參考(點擊查看)
  
  在現有表中創建或刪除 PRIMARY KEY 約束
   TransactSQL參考(點擊查看)
  
  企業管理器:
  (定義主鍵
  定義主鍵來強制不允許空值的指定列中輸入值的唯一性如果在數據庫中為表定義了主鍵則可將該表與其它表相關從而減少冗余數據表只能有一個主鍵
  
  定義主鍵
  
  在數據庫關系圖或表設計器中單擊要定義為主鍵的數據庫列的行選擇器若要選擇多個列請按住 CTRL 鍵同時單擊其它列的行選擇器
  
  
  右擊列的行選擇器然後選擇設置主鍵命令將自動創建一個名為PK_且後跟表名的主鍵索引可在屬性頁的索引/鍵選項卡上找到該索引
  警告  如果要重新定義主鍵則必須先刪除任何與現有主鍵相關的關系才能創建新主鍵將出現一條信息警告您作為該過程的一部分將自動刪除現有關系
  
  行選擇器上的主鍵符號 用於標識一個主鍵列
  
  如果主鍵包含不止一列則在一列中允許有重復值但主鍵中所有列值的每個組合必須唯一
  
  如果定義復合鍵主鍵中的列順序將與關系圖中的表所顯示的列順序相匹配不過可以在創建主鍵後更改列的順序
  
  刪除主鍵約束
  
  當要刪除對列或列組合中的輸入值的唯一性要求時刪除主鍵約束
  
  刪除主鍵約束
  
  在數據庫關系圖或表設計器中選擇要刪除主鍵約束的表的主鍵列行選擇器上的主鍵符號 用於標識一個主鍵列
  
  右擊列的行選擇器然後選擇設置主鍵命令
  –
  
  在數據庫關系圖中選擇要刪除主鍵約束的表
  
  
  右擊表並選擇索引/鍵命令
  
  
  從選定的索引列表中選擇主鍵索引
  
  
  選擇刪除按鈕
  注意  選擇刪除按鈕將導致一個無法撤消的操作而且不保存對數據庫關系圖所做的所有其它更改若要撤消該操作請不保存更改即關閉當前的數據庫關系圖和所有其它打開的數據庫關系圖
  
  當保存表或關系圖時約束即從數據庫中被刪除
  
  )
  
  修改 PRIMARY KEY 約束
  (修改主鍵
  當要更改列順序索引名稱聚集選項或填充因子時修改主鍵
  
  修改主鍵
  
  在數據庫關系圖中右擊要修改主鍵的表然後從快捷菜單中選擇屬性命令
  
  
  為要修改主鍵的表打開表設計器在表設計器中右擊然後從快捷菜單中選擇屬性命令
  
  選擇索引/鍵選項卡
  
  
  從選定的索引列表中選擇主鍵索引
  
  
  完成下表中的操作
  
  當保存表或關系圖時主鍵即在數據庫內被更新)
  

From:http://tw.wingwit.com/Article/os/xtgl/201311/9217.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.