Теряется символ в XML

andsm
Дата: 31.01.2013 14:30:38
Пытаюсь сейчас заставить один запрос с XML работать, что-то не получается.
Есть запрос:
declare @OBJECTS xml

set @OBJECTS = N'<root>
<object><![CDATA[
abc\
def
]]></object>
</root>'

SELECT 
      [Value] = T.c.value('.','nvarchar(MAX)')
   FROM @OBJECTS.nodes('/root/object') T(c)

Я от него ожидаю что он вернет:

abc\
def
А запрос возвращает
 abcdef 
Пропадает начальный перевод строки, заменяется на пробел. И теряется символ "\" с последующим переходом на новую строку. Это решается если добавить еще один такой символ и еще один перевод строки. Но непонятно почему это происходит. Вроде такого поведения в CDATA быть не должно. Чем это может быть вызвано?
Гость333
Дата: 31.01.2013 14:38:07
andsm
Чем это может быть вызвано?

Это вызвано тем, что бэкслэш в строковых константах имеет специальное значение: http://msdn.microsoft.com/en-us/library/dd207007.aspx
\ (Backslash) (Transact-SQL)
Breaks a long string constant into two or more lines for readability.

И пример там прям как у вас
SELECT 'abc\
def' AS ColumnResult;
Glory
Дата: 31.01.2013 14:38:38
andsm
И теряется символ "\" с последующим переходом на новую строку.

Это фичи студии

declare @OBJECTS xml

set @OBJECTS = N'<root>
<object><![CDATA[
abc\'+CHAR(13)+CHAR(10)+
'def
]]></object>
</root>'

SELECT 
      [Value] = T.c.value('.','nvarchar(MAX)')
   FROM @OBJECTS.nodes('/root/object') T(c)
andsm
Дата: 31.01.2013 14:57:50
Спасибо, понял.