如何为employee表中的记录分配唯一标识符?

时间:2013-03-14 12:47:41

标签: c# sql-server

我知道这是第一个问题,但有人问我,但我无法给他适当的答案。 在Employee,Technology中有两个表格employee_technology_rel保存了多对多关系。员工表格包含字段 - emp_id (auto_increment)emp_name(varchar)DOB (date)其中,技术字段为{{} 1}},tech_id(auto_increment)  这两个表允许重复名称。我应该定义哪个唯一约束来允许唯一条目?

3 个答案:

答案 0 :(得分:0)

您可以在表employee_technology_rel上定义唯一条目,

ALTER TABLE employee_technology_rel 
       ADD CONSTRAINT emptech_pk PRIMARY KEY (emp_id, tech_id)
// or if you have set a primary key already, you can still define via UNIQUE
ALTER TABLE employee_technology_rel 
       ADD CONSTRAINT emptech_uq UNIQUE (emp_id, tech_id)

它的作用是它只为每位员工提供独特的技术

为了让您在表emp_name上拥有唯一Employee以及在表tech_name上拥有唯一Technology,您还可以通过添加唯一约束来更改表< / p>

ALTER TABLE Employee ADD CONSTRAINT emp_uq UNIQUE (emp_name)
ALTER TABLE Technology ADD CONSTRAINT tech_uq UNIQUE (tech_name)

答案 1 :(得分:0)

您希望在employee_technology_rel中的两列上定义复合主键:emp_id和tech_id。

答案 2 :(得分:0)

  

唯一索引和唯一约束是相同的。他们实现同样的目   目标。两者的SQL性能相同。

     

添加唯一约束   ALTER TABLE dbo。添加约束    UNIQUE NONCLUSTERED()ON   [PRIMARY]

     

添加唯一索引   创建独特的非集群索引    在dbo。 ( ) 上   [PRIMARY]

来自Google搜索的

来源sqlauthority.commsdn:“SQL server unique index”。