#title 동적쿼리의 따옴표의 압박에서 벗어나는 방법 [[TableOfContents]] ==== quotename()을 이용하기 ==== 동적쿼리를 작성하다보면 작은 따옴표의 압박은 정말 숨이 넘어갈 정도다. 수 십라인의 동적쿼리문을 작성하고 있다 보면 하품이 다 나올 정도다. 이렇게 따옴표의 압박이 심한 경우는 quotename()을 이용하여 SQL을 작성하면 좀 더 심플하게 SQL이 작성되므로 하품은 나오지 않을 것이다. {{{ declare @sql nvarchar(255) set @sql = 'select * from sys.objects where name like ' + quotename('%', '''') + '+' + quotename('sysdiagrams', '''') + '+' + quotename('%', '''') print @sql exec(@sql) --select * from sys.objects where name like '%'+'sysdiagrams'+'%' }}} ==== 귀찮으면.. ==== quotename()함수는 입력매개변수가 2개다. 요것도 귀찮으면 사용자 정의 함수를 만들면 된다. {{{ CREATE FUNCTION dbo.quotestring(@str nvarchar(1998)) RETURNS nvarchar(4000) AS BEGIN DECLARE @ret nvarchar(4000), @sq char(1) SELECT @sq = '''' SELECT @ret = replace(@str, @sq, @sq + @sq) RETURN(@sq + @ret + @sq) END }}}