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

case.when.then.话语在存储过程中嵌套联合查询报错

2012-09-23 
case...when...then...语句在存储过程中嵌套联合查询报错SQL codecreate proc GetReportasbegininsert int

case...when...then...语句在存储过程中嵌套联合查询报错

SQL code
create proc GetReportasbegininsert into dbo.OneceShop(cid,Clayer,DistrictCode,DistrictName,createdate)select a.cid,case a.Clayer  when '1' then '总代'             when '2' then '省代'             when '3' then '办事处'             when '4' then '区代'             when '5' then '一次店'             when '6' then '二次店' end,b.DistrictCode,b.DistrictName,getdate()from dbo.TPUBCLIENTINFO a,TPubDistrict b where a.caddprovince=b.struccode order by DistrictNameend


简单的存储过程,就查两表数据,插入新表,其中有一个表的字段a.Clayer 我查出来如果是 1或者2或者3或者4。。。我想让他插入新表的时候直接转换判断。

1 就是 总代
2 就是 省代
3 就是 办事处
。。。

a.Clayer 为varchar(1)

存储过程创建可以,但执行报错

SQL code
消息 8152,级别 16,状态 14,过程 GetReport,第 4 行将截断字符串或二进制数据。语句已终止。


[解决办法]
a.Clayer 为varchar(1) 长度明显不够啊

[解决办法]
Clayer---varchar(1) is not enough to hold the data like "省代"
[解决办法]
a.Clayer 为varchar(1)这个字段长度明显不够的
[解决办法]
解决了就结贴拉》。。。。
[解决办法]
这么多分 求人性化蹭点分。。。。
[解决办法]
字段长度不够,所以报错,提示会被截断

热点排行
Bad Request.