錯誤問題:
消息 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 時失敗。