日期:2014-05-16  浏览次数:20703 次

请问字段类型是 set('1.0','2.0') 这是什么意思
CREATE   TABLE     dbo.table1   (
    column1   set( '1.0 ', '2.0 ')   default   NULL,
)


请问在MS-SQLServer   里面对应的类型是什么?

------解决方案--------------------
set( '1.0 ', '2.0 ') 就是说值是在这个集合里面的一个或多个值
enum( '1.0 ', '2.0 ')就是说这个字段的值只能是这个集合中的一个

MSSQL中无此种数据类型
------解决方案--------------------
ENUM和SET

ENUM和SET都是比较特殊的字符串数据列类型,它们的取值范围是一个预先定义好的列表。ENUM或SET数据列的取值只能从这个列表中进行选择。ENUM和SET的主要区别是:

ENUM只能取单值,它的数据列表是一个枚举集合。它的合法取值列表最多允许有65535个成员。例如:ENUM( "N ", "Y ")表示,该数据列的取值要么是 "Y ",要么就是 "N "。

SET可取多值。它的合法取值列表最多允许有64个成员。空字符串也是一个合法的SET值。

ENUM和SET的值是以字符串形式出现的,但在内部,MySQL以数值的形式存储它们。

ENUM的合法取值列表中的字符串被按声明定义的顺序被编号,从1开始。

SET 的编号不是按顺序进行编号的,SET中每一个合法取值都对应着SET值里的一个位。第一个合法取值对应0位,第二个合法取值对应1位,以此类推,如果数值形式的SET值等于0,则说明它是一个空字符串,如果某个合法的取值出现在SET数据列里,与之对应的位就会被置位;如果某个合法的取值没有出现在SET 数据列里,与之对应的位就会被清零。正因为SET值与位有这样的对应关系,所以SET数据列的多个合法取值才能同时出现并构成SET值。

在mysql的手册里有。
------解决方案--------------------
MS SQL Server没有对应的数据类型。