如何将复合唯一键添加到用户定义的表类型,如下所示:
CREATE TYPE [dbo].[jobdata] AS TABLE(
[emp_num] [smallint] NULL,
[job_date] [date] NULL,
[year] [smallint] NULL,
[job_code] [smallint] NULL,
[order_year] [smallint] NULL,
[order_ser] [decimal](5, 0) NULL,
)
GO
我希望emp_num,job_date
是复合唯一键。
答案 0 :(得分:3)
您无法更改UserDefined表类型,您需要删除并重新创建任何更改..
From MSDN ..
用户定义的类型在创建后无法修改,因为更改可能会使表或索引中的数据无效。要修改类型,您必须删除类型然后重新创建它,或者使用WITH UNCHECKED DATA子句发出ALTER ASSEMBLY语句。
以下是在UserDefined Table Type
上创建唯一约束的方法CREATE TYPE test AS TABLE
( col1 VARCHAR(50)
, col2 INT ,
unique (col1,col2)
);
注意:我们不能命名约束,因此创建像普通方式一样的约束是无效的。
以下示例
CREATE TYPE test AS TABLE
( col1 VARCHAR(50)
, col2 INT ,
constraint test unique (col1,col2)
);
答案 1 :(得分:0)
ALTER TABLE jobdata ADD CONSTRAINT [Unique_emp_num_ob_date] UNIQUE (
emp_num
,job_date
)