我想使用如下查询,我正在寻找准确的信息/链接以转义字符串
书名是 NVARCHAR(200)
SELECT * FROM Books WHERE BookTitle IN ('Mars and Venus', 'Stack''s Overflow\r\n')
问题: 是只需要转义 "'"还是连\r\n 都需要转义? MySql .Net Provider 暴露了对字符串值进行转义的方法,请问Sql Server .Net Provider 有这样的功能吗?
我可能需要对字符串值进行 C# 等效转义。
我知道参数化命令,但为了尽量减少我的服务器到客户端的通信,我在 IN 子句中的值是 20 到 50,为 BookTitle 中的每个值运行 SELECT 会变得太昂贵了一通电话。运行单个查询并返回级联的所有结果有助于节省网络资源。
最佳答案
SQL Server 无法识别 \r\n
序列,无论它是否转义。
如果你想匹配 BookTitle
中的 \r\n
,你需要做这样的事情:
-- \r = CHAR(13)
-- \n = CHAR(10)
SELECT *
FROM Books
WHERE BookTitle IN ('Mars and Venus', 'Stack''s Overflow ' + CHAR(13) + CHAR(10))
关于c# - 为 T-SQL 字符串文字正确的字符串转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1266863/