错误问题:
消息 245,级别 16,状态 1,第 1 行
在将 varchar 值 '2,8' 转换成数据类型 int 时失败。
ps: 这是在后台分配菜单权限这个功能时出现的问题
一,解决方法:
将用户表和菜单表用CHARINDEX方法来选择存在的rows,返回集合,
SELECT * FROM dbo.Meun m WHERE CHARINDEX(CONVERT(VARCHAR, m.Id), ( SELECT AuthorityId FROM dbo.UserInfo u WHERE u.Id = '4' )) > 0;
二,而以上必须使用,CONVERT(VARCHAR, m.Id)将菜单Id类型转换查询,如不然则会第 1 行 在将 varchar 值 '2,8' 转换成数据类型 int 时失败。