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,则它应该是唯一的,而不是主键。这是用户定义的表这是用户定义的表