如何在我的列上创build唯一约束(SQL Server 2008 R2)?

我有SQL Server 2008 R2,我想设置一个独特的列。

似乎有两种方法可以做到这一点:“唯一索引”和“唯一约束”。 他们和我所了解的没有什么不同,尽pipe大多数人都推荐独特的约束,因为你也会自动获得一个索引。

我如何创build一个唯一的约束?

ALTER TABLE Customer ADD CONSTRAINT U_Name UNIQUE(Name) 

有没有办法通过SQL Server Management Studio创build一个唯一的约束?

要通过GUI创build这些约束,您需要“索引和键”对话框而不是检查约束条件。

但在你的情况下,你只需要运行你已经有的代码段。 根本不需要进入expression式对话。

从GUI中将SQL Server中的列设置为唯一:

他们真的让你在谷仓里跑来跑去做:

确保您的专栏在开始之前不违反唯一性约束。

  1. 打开SQL Server Management Studio。
  2. 右键单击您的表,单击“devise”。
  3. 右键点击你要编辑的列,出现一个popup菜单,点击索引/键。
  4. 点击“添加”button。
  5. 展开“常规”选项卡。
  6. 确保在“列”框中具有要进行唯一select的列。
  7. 将“types”框更改为“唯一键”。
  8. 点击“closures”。
  9. 您在文件窗口中看到一些星号,这意味着更改尚未保存。
  10. 按保存或按Ctrl + s。 它应该保存,并且你的专栏应该是唯一的。

或者从“SQL查询”窗口中将列设置为唯一:

 alter table location_key drop constraint pinky; alter table your_table add constraint pinky unique(yourcolumn); 

更改立即生效:

 Command(s) completed successfully. 

你确定这个专栏目前是独一无二的吗? 你可以find这样的方式:

 select name,count(*) from customer group by name having count(*) > 1 

这会给你任何重复。

这是通过GUI的另一种方式,即使它通过对象资源pipe理器中的索引(而非约束),脚本也完成它的function。

  1. 右键单击“索引”,然后单击“新build索引…”(注意:如果您在devise视图中打开该表,则禁用该function)

在这里输入图像说明

  1. 给新的索引一个名称(“U_Name”),选中“唯一”,然后单击“添加…”

在这里输入图像说明

  1. select下一个windown中的“名称”列

在这里输入图像说明

  1. 在两个窗口中单击确定