Я пытаюсь обновить столбец во временной таблице, основываясь на некоторых условиях, но получаю странную ошибку.
Conversion failed when converting the varchar value 'CfPlnUt_Aemk5Mr77-AevA2' to data type int.
Эта ошибка относится к столбцу WelcomeEmailStatus .Ниже мой запрос на обновление.
UPDATE G
SET G.GroupNameAnchor = (Case When ChatGroupType IS NULL OR ChatGroupType = 3
Then dbo.GetHRChatTitle(G.UserChatGroupId) Else G.GroupNameAnchor End)
,
G.WelcomeEmailStatus = (Case When G.MessageId IS NOT NULL AND Exists (Select top 1 E.Status From EmailStatus E Where E.MessageId = G.MessageId)
Then (Select top 1 E.Status From EmailStatus E Where E.MessageId = G.MessageId) Else 0 End)
FROM #OnlineUsersOrGroups G;
Даже ниже запрос также дает ту же ошибку.
UPDATE G
SET G.GroupNameAnchor = (Case When ChatGroupType IS NULL OR ChatGroupType = 3
Then dbo.GetHRChatTitle(G.UserChatGroupId) Else G.GroupNameAnchor End)
,
G.WelcomeEmailStatus = (Case When G.MessageId IS NOT NULL AND Exists (Select top 1 E.Status From EmailStatus E Where E.MessageId = G.MessageId)
Then 1 Else 0 End)
FROM #OnlineUsersOrGroups G;
Ниже приведена схема таблицы
IF OBJECT_ID('tempdb..#OnlineUsersOrGroups') IS NOT NULL
DROP TABLE #OnlineUsersOrGroups;
Create Table #OnlineUsersOrGroups(row int,
UserId int,
OnlineAt DateTime,
UserRank int,
UserStatus int,
LastLoginAt DateTime,
GroupOrUsername Varchar(Max),
UserInstallId Varchar(1000),
Picture Varchar(1000),
DepartmentId int,
DepartmentName Varchar(1000),
LastMessage Varchar(Max),
MessageId int,
MessageAt DateTime,
ReceiverIds Varchar(Max),
IsRead bit,
chatgroupid Varchar(Max),
TaskId bigint,
TaskMultilevelListId int,
UserChatGroupId int,
ChatGroupType int,
ChatGroupMemberImages Varchar(Max),
GroupNameAnchor Varchar(Max),
UnreadCount int,
TotalAutoEntries int,
WelcomeEmailStatus int not null default(0))