首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql server 中的类型转换,该如何解决

2012-04-18 
sql server 中的类型转换在数据库中见一个货品信息表要求是将商品状态定义成 bit型 设置默认约束表示可售

sql server 中的类型转换
在数据库中见一个货品信息表
要求是将商品状态定义成 bit型 设置默认约束表示可售出 
bit类型设置默认值为 1 时 表中显示的是true
想要表中显示‘可售出’这几个字
我开始写的错误语句是这样的:
M_State bit constraint DF_Mstate default '可出售'
向表中写入数据时报错:不能将varchar值‘可售出’转换成bit类型

有人告诉我用程序转换:
if(bitState)
strState='可售出'

可我不知道这段应该放在sql语句的那个位置,怎样才能让它有用

麻烦各位大仙不吝指点

[解决办法]

SQL code
gocreate table #t(M_State bit constraint DF_Mstate default 1)insert #tselect 1010 union allselect 0 union allselect 0select * from #tselect case when M_State=1 then '可出售' else '不可出售' end as M_State from #t--你的字段是bit类型,'可出售'是varchar类型,这是不能转换过去的,除非是像这样的‘1’或者‘0’这样的字符串/*M_State可出售不可出售不可出售*/
[解决办法]
这个是个概念性的问题啊,你定义的bit数据类型,存储的是bit数据类型,你要让表显示字符的话你不能简单的使用窗口中的打开数据库,因为那种方式打开是按照bit数据类型的默认方式打开的,你可以使用查询语句使得查询时显示成字符串。
SQL code
--假如你的表名为 tbl,只显示这个状态位select case when M_State = 1 then '可出售' else '不可出售' end as M_Statefrom tbl;go 

热点排行