ENUM for SQL Server没有检查约束?
问题描述:
我正在尝试在我的MySQL转换过程中为SQL Server中的ENUM数据类型找到替代方法。我知道检查约束存在,但我只是想创建新的表来完全替换枚举对象。所以目标的要点:ENUM for SQL Server没有检查约束?
Create Table Enum OrderType {
Buy = 1;
Sell = 2;
Short = 3;
Cover = 4;
}
其中C#可以根据需要轻松调用这些值。任何方式来做到这一点?或者我必须使用支票吗?
答
您可以创建一个包含这些值的表格,并使用外键约束在主表格中引用它们。在下面的代码中,FKTypes将阻止任何超出ID范围的内容被插入。
create table Types
(
TypeId int not null primary key,
Value varchar(10) not null
)
go
insert Types(TypeId, Value) values (1, 'Buy'), (2, 'Sell'), (3, 'Short'), (4, 'Cover')
go
create table Main
(
ColData varchar(1000),
ColType int not null,
constraint FK_ColType foreign key references Types(TypeId)
)
go
我没有手头SSMS所以这不是对错别字进行测试,但你可以给它一个尝试,如果你觉得它有用。
问候
彼得
http://forums.asp.net/t/1161357.aspx – 2011-05-29 19:05:46
我想你的问题的最简单,最好的答案就在这里: HTTP://计算器。 COM /问题/ 262802 /不-SQL服务器2005具备的,一个相当于对mysqls-枚举数据类型 – Acute 2011-11-15 06:14:04