동적쿼리

database/MSSQL 2014. 7. 16. 14:08

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
블로그 이미지

란마12

,