SQL Server - 简单的多选字段定义

时间:2016-10-05 23:49:57

标签: sql-server

我是SQL Server的新手,来自MySQL背景。我正在尝试迁移一个MySQL表,其中包含与以下几个类似定义的几个字段:

"FavoriteColors" SET('Red','Blue','Dark Purple', 'Green') DEFAULT NULL,

基本上,它们是多项选择题。在表单中输入这些字段时,用户可以选择其中一个或多个。

在寻找与此定义等效的SQL Server时,我看到很多人为不同的选择创建了一个额外的表,然后是一个连接前两个表的查找表。知道有这样的多个选择字段,对于这样一个简单的定义来说,这似乎是一个非常复杂的解决方案。这是真正的最佳做法,还是您推荐其他解决方案?当然,我可以为每个选项使用BIT字段,但在我看来,SQL Server可能有一个更简单,更有条理的解决方案。

非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以创建用户定义的类型并为此数据类型创建规则。这使您可以在数据库中的任何位置使用此新数据类型

以下是代码,请逐步执行

CREATE TYPE [dbo].[Color] FROM [nvarchar](40) NULL

CREATE RULE ruleColor
AS
(@phone='Red') OR 
(@phone='Black')
GO

EXEC sp_bindrule 'ruleColor', 'Color'

我希望它有所帮助,