如何在我的列上创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中的列设置为唯一:
他们真的让你在谷仓里跑来跑去做:
确保您的专栏在开始之前不违反唯一性约束。
- 打开SQL Server Management Studio。
- 右键单击您的表,单击“devise”。
- 右键点击你要编辑的列,出现一个popup菜单,点击索引/键。
- 点击“添加”button。
- 展开“常规”选项卡。
- 确保在“列”框中具有要进行唯一select的列。
- 将“types”框更改为“唯一键”。
- 点击“closures”。
- 您在文件窗口中看到一些星号,这意味着更改尚未保存。
- 按保存或按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。
- 右键单击“索引”,然后单击“新build索引…”(注意:如果您在devise视图中打开该表,则禁用该function)
- 给新的索引一个名称(“U_Name”),选中“唯一”,然后单击“添加…”
- select下一个windown中的“名称”列
- 在两个窗口中单击确定