안녕하세요.,.. 지난번에 왔던 게임개발하는 서버프로그래머입니다 ㅎㅎ...


지난번 질문에서도 많은 도움을 받아서 오늘도 한번 도움을 요청하고자 글을 올립니다..


저번보단 쉬운 내용인거 같은데요...


문자열 배열로 UID들을 받아서 해당 UID들의 데이터를 update시키는데 계속 버그가 발생하네요.


도움을 요청합니다..


CREATE PROCEDURE [dbo].[spMailDeleteAll]

@charUID bigint

, @MailUIDList nvarchar(3000)

AS

BEGIN TRY

SET NOCOUNT ON

--DECLARE @NVARCHARTRANS varchar(3000)

--set @NVARCHARTRANS = CONVERT(varchar(3000),@MailUIDList)


DECLARE @SQL nvarchar(3600)

set @SQL = 'update tbMailBox set IsActivate = 0, Deleted_Date = getdate() where ReciverCharUID = @charUID and MailUID IN ('+ @MailUIDList +')'

EXEC(@SQL) -- 요기서 에러 발생합니다 ㅠㅠ;


return 0

END TRY


BEGIN CATCH

IF @@TRANCOUNT > 0

ROLLBACK TRAN;

return  100

END CATCH


주석처리된 부분을 보시면 아시겠지만 varchar로도 해보고 nvarchar로도 해보고 안되서 화가나서


update tbMailBox set IsActivate = 0, Deleted_Date = getdate() where ReciverCharUID = @charUID and MailUID IN ( 실제UID )


이 구문으로 직접 실행시켜보니 잘되더라구요..


결국 문제는 UID 리스트를 sql문에 넣는 부분이 문제인거 같은데... 어떤부분이 문제일지 잘 모르겠습니다;;


도움을 보탁드립니다