如何在SQL Server中检查我的数据是否有回车符和换行符?

如何在SQL Server中检查我的数据是否有回车符和换行符?,sql,sql-server,Sql,Sql Server,面对一个问题,我存储在SQL Server中的数据似乎没有正确存储,简单地说,如何验证varchar数据中是否包含回车符和换行符?我试着把它们打印出来,不显示特殊字符。 谢谢看看Char函数。看见这将有助于查找特殊字符。您可以使用SQL Server的char(n)和contains()函数来匹配WHERE子句中的字段内容 carriage return: char(13) line feed: char(10) 要删除某些字段中的回车符值,可以使用replace()函数long w

面对一个问题,我存储在SQL Server中的数据似乎没有正确存储,简单地说,如何验证varchar数据中是否包含回车符和换行符?我试着把它们打印出来,不显示特殊字符。
谢谢

看看
Char
函数。看见这将有助于查找特殊字符。

您可以使用SQL Server的
char(n)
contains()
函数来匹配
WHERE
子句中的字段内容

carriage return: char(13) line feed: char(10) 要删除
某些字段中的回车符
值,可以使用
replace()
函数long with
char()
contains()
。SQL将类似于:

UPDATE some_table 
SET some_field = REPLACE(some_field, char(13), '')
WHERE CONTAINS(some_field, char(13))
要删除新行,您可以使用该更新的char(10)版本跟踪最后一条语句。怎么做完全取决于文本包含的换行符类型。但是,根据从新行插入/粘贴文本的位置,文本可能是\r\n或\n,因此针对\r\n和\n两个字符运行更新要比假设您得到的是一个或另一个版本的新行更安全


请注意,如果删除了换行符,并且希望保留它们,则必须在输入点修复该问题。您无法替换或修复已删除的内容,因此应将原始文本数据保存在一个新列中,该列保存原始的未修改文本。

以添加其他人所说的内容;当我需要在T-SQL中嵌入换行符时,我倾向于这样做

DECLARE @nl CHAR(2) = CHAR(13) + CHAR(10);

..然后根据需要使用
@nl
。当然,这是针对Windows的行结尾。

(我称我的
@CRLF
SSMS
在尝试运行
更新时给了我一个错误
脚本
在“char”附近的语法不正确。
最后的
字符(13)
用扭曲的行划线。将鼠标悬停在wigglies上,在“char”附近显示
不正确的语法。应为字符串、文本或变量
@whytheq:您在评论部分提出了一个问题。我知道这与我的答案有关/基于我的答案,但很难猜测在看到您实际使用的查询和运行的表结构的情况下发生了什么。请发一个问题。谢谢。抱歉:我提出了一个问题并得到了答案:
DECLARE @nl CHAR(2) = CHAR(13) + CHAR(10);