2014-02-15 29 views
0

我想在sql-server中创建一个类似于postgresql中的DOMAIN的类型。使用允许的值在sql server中创建类型

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

注:我知道这个查询是不正确的。

是否有可能在SQL服务器中创建这样的类型?

+0

在SQL Server中,我们有用户定义类型看看['用户定义的Types'(http://technet.microsoft.com/en-us/library/ ms131086.aspx)以及['User Defined Table/Column Types'](http://technet.microsoft.com/zh-cn/library/ms131076.aspx) –

回答

0

在SQL Server中,你需要做这两个步骤

1)创建一个类型

2)创建一个约束

创建类型

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 
+0

谢谢,但可以检查类型创建中的约束? –

+0

不是问题,是的,只有在其“TABLE TYPE”时,才可以在UDF类型中创建约束。如果它帮助你,你可以接受答案:) –

相关问题