Sql 如何向用户定义的表类型添加复合唯一键

Sql 如何向用户定义的表类型添加复合唯一键,sql,sql-server,sql-server-2012,ddl,user-defined-types,Sql,Sql Server,Sql Server 2012,Ddl,User Defined Types,如何向用户定义的表类型添加复合唯一键,如下所示: 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) NU

如何向用户定义的表类型添加复合唯一键,如下所示:

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\u num,job\u date
是复合唯一键。

您不能更改用户定义的表类型,您需要删除并重新创建任何更改

用户定义的类型创建后无法修改,因为更改可能会使表或索引中的数据无效。若要修改类型,必须删除该类型,然后重新创建它,或者使用WITH UNCHECKED DATA子句发出ALTER ASSEMBLY语句

下面是在用户定义的表类型上创建唯一约束的方法

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)
    );

您无法更改用户定义的表类型,需要删除并重新创建任何更改

用户定义的类型创建后无法修改,因为更改可能会使表或索引中的数据无效。若要修改类型,必须删除该类型,然后重新创建它,或者使用WITH UNCHECKED DATA子句发出ALTER ASSEMBLY语句

下面是在用户定义的表类型上创建唯一约束的方法

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)
    );

unique(emp_num,job_date)
,在创建表或do alter table中。字段不能允许空值。用户定义的表已经存在。我想更改itdocs明确声明“用户定义的表类型定义创建后无法修改。”@jarlh true,如果op坚持为null,则它应该是唯一的,而不是主键。
unique(emp_num,job_date)
,可以在create table中,也可以在do alter table中。字段不能允许为null值。用户定义的表已经存在,我想更改itdocs,请明确说明“用户定义的表类型定义创建后无法修改。”@jarlh true,如果op坚持为null,则它应该是唯一的,而不是主键。这是用户定义的表这是用户定义的表