SQL Server无法转义\ CR LF

时间:2016-12-07 15:38:44

标签: sql-server

我有一个列类型为text的表格。在此列中保存参数,每行一个。

我的问题如果参数以“\”结尾,因为路径名,保存数据时,SQL Server删除CR LF,每行留下两个参数。

实施例

保存

Path=C:\Transfer\
Outher=Yes
Outher1=No

恢复

Path=C:\Transfer\Outher=Yes
Outher1=No

在“\”之后让SQL Server不清楚“CR LF”?

有条件的信息

create table TEST ( Ini text);

insert into TEST values 
(
'Path=C:\Transfer
Outher=Yes
Outher1=No
');

insert into TEST values 
(
'Path=C:\Transfer\
Outher=Yes
Outher1=No
');

select * from TEST;

首先插入返回

enter image description here

第二次插入返回

enter image description here

1 个答案:

答案 0 :(得分:1)

显然this is by design允许SSMS(或任何客户端)中的长字符串更好的可读性。

  

为了便于阅读,将长字符串常量分成两行或多行。

您可以在\

之后加一个空格来绕过它
select 'Path=C:\Transfer\ 
Outher=Yes
Outher1=No'

单独显式连接新行

select 'Path=C:\Transfer\'+ '
Outher=Yes
Outher1=No'

加倍努力(感谢@TT)

select 'Path=C:\Transfer\\

Outher=Yes
Outher1=No'

请参阅this answer as well