DECLARE @sSql NVARCHAR(MAX);
DECLARE @a_sParam2 NVARCHAR(MAX);
SET @a_sParam2 = '''000000010'',''000000011''';
SET @sSql = 'UPDATE TB_TEST SET COL1 = ''1'' WHERE COL2 IN(@sMcodes)';
PRINT @sSql;
PRINT @a_sParam2;
EXEC SP_EXECUTESQL @sSql, N'@sMcodes NVARCHAR(MAX)', @sMcodes = @a_sParam2;
SQL INJECTION등 위험성 때문에 위의 코드는 작동하지 않는다.
결국 동적쿼리 쓰지 않고 파싱해서 임시테이블 생성함수 만들어 사용
UPDATE TB_PPS_PRS SET COL1 = '4', WHERE COL2 IN(SELECT ITEM FROM DBO.DelimitedSplit8K('000000010,000000011', ','))
'database > MSSQL' 카테고리의 다른 글
export schema (0) | 2014.10.21 |
---|---|
데이터 타입과 크기 (0) | 2014.08.01 |
메일 발송 (0) | 2014.01.28 |
중복데이터 제거 (0) | 2013.03.05 |
원격 접속 허용하기 (0) | 2011.07.07 |