使用允许的值在 sql server 中创建类型 [英] create type in sql server with allowed values
本文介绍了使用允许的值在 sql server 中创建类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在 sql-server 中创建一个类似于 postgresql 中的 DOMAIN 的类型.
I want to create a type in sql-server which is similar to DOMAIN in postgresql.
CREATE DOMAIN degree_level NVARCHAR(10)
CONSTRAINT degree_level_test
CHECK (VALUES IN (’Bachelors’, ’Masters’, ’Doctorate’))
注意:我知道这个查询不正确.
Note: I know this query is not correct.
是否可以在 SQL-server 中创建这样的类型?
Is it possible to create such types in SQL-server?
推荐答案
在 sql Server 中,您需要分两步进行
In sql Server you will need to do this in two steps
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
这篇关于使用允许的值在 sql server 中创建类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文