使用允许值在sql server中创建类型

时间:2014-02-15 21:13:09

标签: sql-server types sql-server-2012

我想在sql-server中创建一个类型,类似于postgresql中的DOMAIN。

CREATE DOMAIN degree_level NVARCHAR(10)
CONSTRAINT degree_level_test
CHECK (VALUES IN (’Bachelors’, ’Masters’, ’Doctorate’))

注意:我知道此查询不正确。

是否可以在SQL-server中创建这样的类型?

1 个答案:

答案 0 :(得分:0)

在sql Server中,您需要分两步完成此操作

1)创建一个类型

2)创建约束

创建一个TYPE

CREATE TYPE dbo.degree_level FROM NVARCHAR(10)
GO

在表级创建约束

CREATE TABLE Type_Test_Table
(
ID INT ,
Type_Column degree_level
CHECK (Type_Column IN( 'Bachelors' , 'Masters' ,'Doctorate'))
)
GO

<强>测试

INSERT INTO Type_Test_Table VALUES (1, 'Bachelors')   --<-- Success
GO
INSERT INTO Type_Test_Table VALUES (2, 'Masters')     --<-- Success
GO
INSERT INTO Type_Test_Table VALUES (3, 'Doctorate')   --<-- Success
GO
INSERT INTO Type_Test_Table VALUES (4, 'Other Val')   --<-- Fail
GO