PRB: Proper Handling of the Escape Sequence \<cr><lf>Last reviewed: March 7, 1997Article ID: Q164291 |
The information in this article applies to:
SYMPTOMSMicrosoft SQL Server identifies a Transact-SQL command containing the backslash (\) followed by the carriage return (0x0d) and line feed (0x0a) as an escape sequence. The following example demonstrates the behavior:
use pubs go drop table tblTest go create table tblTest ( strData varchar(30) ) go insert into tblTest values ("c:\ X") go insert into tblTest values ("c:\\ X") go select * from tblTest go strData ------------------------------ c:X c:\ XThe first insert contains the \<cr><lf> sequence, and when returned from SQL Server, is c:X. The escape sequence is scanned out by the SQL Server. However, replacing the \<cr><lf> with \\<cr><lf><cr><lf>, as in the second insert, yields the expected results.
CAUSESQL Server sees the \<cr><lf> (\ + 0d + 0a) sequence as an escape sequence.
WORKAROUNDTo work around this problem, correct the Transact-SQL string, replacing the \<cr><lf> with \\<cr><lf><cr><lf> before sending the query to the SQL Server.
|
Keywords : SSrvProg kbprg
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |