T-SQL多行字符串无需缩进字符

10

这似乎很简单...

如何存储多行字符串以使代码保持良好的格式。

这样做很丑陋。

DECLARE @myStr NVARCHAR(MAX)
SET @myStr = 'This represents a really long
string that i need multiple lines for,
dude.'

但是上述代码可以得到正确的字符串输出:
SELECT @myStr
'This represents a really long string that i need multiple lines for, dude.'

这样做可以使我的代码更易读:

DECLARE @myStr NVARCHAR(MAX)
SET @myStr = 'This represents a really long
    string that i need multiple lines for,
    dude.'

但是结果却是这样的:
SELECT @myStr
'This represents a really long     string that i need multiple lines for, 
dude.'

有没有在多行字符串中转义制表符的特殊方法(就像其他语言一样)...
1个回答

15

你正在寻找一个反斜杠("\"):(参考文档)

SET @myStr = 'This represents a really long \
    string that i need multiple lines for, \
    dude.'

实际上,你的示例在“long”和“string”之间给出了2个空格 - 你需要在\之前删除空格。 - Dale K
不幸的是,如果您使用空格而不是制表符,则它无法正常工作 - 除非只有一个空格 - 这并不能真正实现所需的效果 :( - Dale K
2
嗯 - 我担心你可能有相反的问题。计划B是将您的字符串串联起来: line 1 ' + 'line 2' + ...请告诉我们是否有帮助。如果您想在文本字符串中添加或保留换行符,请注意以下内容:https://dev59.com/MFoV5IYBdhLWcg3wJ8LD - paulsm4
@JamieMarshall 如果您正在使用制表符,则会删除新行上的第一个制表符。 - Dale K
Q1) 你想要它看起来怎样呢?是一条连续的线,没有多余的空格吗? Q2) 使用 ""(续行符),每行左侧都有多余的空格,它会是什么样子? Q3) 如果每个续行都在最左侧,它会有所不同吗? Q4) 你尝试过"+"(连接)吗?有什么不同吗? Q5) 你是如何显示它的?通过 SSMS 中的 SQL "select" 吗?使用控制台模式的 C# 应用程序吗?还是其他? - paulsm4
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接