使用允许的值在 sql server 中创建类型 [英] create type in sql server with allowed values

查看:24
本文介绍了使用允许的值在 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆