내가 어느 사이트에 답변을 단 글인데..
select @str 했을 때 동적으로 만들어진 쿼리 결과가 짤려서 보일 때가 있다.
그때 해 주면 되는 거이다.
declare @aa varchar(100)
set @aa = 'select * from ' + @@LongString
select @aa
exec (@aa)
하면 결과창에
select * from ......... ..... whe
뭐 이런식으로 뒤에가 짤려서 안 보인다 이 말씀시죠?
그리고 요거 길이를 재보면
select datalength('select * from ....... whe')
길이가 아마도 256 일껍니다.
아마도 이게 맞다면
도구 > 옵션 창을 띄우셔서 결과탭을 누질르십시오.
거기 보면 '열 당 쿼리 결과 수' 인가 뭐시기에 256이란 숫자가 딱 하니 써 있죠.
요게 바로 결과로 나와서 보여주는 스트링의 최대 길이란 말입니다.
고로.. exec(@aa) 요거는 제대로 실행이 됐는데 단지 손님 님이 보는
완성된 쿼리는 짤려서 잘 못 됐구나 라고 생각하고 계시는거고... 아님 말구요 -_-;;
어쨌거나 ㅡㅡ.. 거기 숫자를 큰 숫자로 바꿔 주심 됩니다. 4000 이나 8000 으로 =ㅅ=
그것도 귀찮으시다면
select @aa 로 보는 대신에 print @aa 하심 됩니다 =ㅠ=
참고로. exec sp_executesql() 은 nvarchar 타입이 사용가능하며 얘는 4000 이 최고 입니다.
그리고 exec () 에서는 varchar() 가 사용 가능하며 최대 길이는 쓰기 나름입니다.varchar는 8000.
exec (@aa + @aa) 요런식으로 더 긴 문자열도 쓸 수 있다는 거죠 :D
댓글