我想在sql-server中创建一个类型,类似于postgresql中的DOMAIN。
CREATE DOMAIN degree_level NVARCHAR(10)
CONSTRAINT degree_level_test
CHECK (VALUES IN (’Bachelors’, ’Masters’, ’Doctorate’))
注意:我知道此查询不正确。
是否可以在SQL-server中创建这样的类型?
答案 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