没有缩进字符的 T-SQL 多行字符串

Jam*_*all 5 t-sql sql-server

这看起来很简单...

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

这样做很丑

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

但上面的结果是正确的字符串输出:

SELECT @myStr
'This represents a really long string that i need multiple lines for, dude.'
Run Code Online (Sandbox Code Playgroud)

这样做可以更轻松地阅读我的代码:

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

但结果是:

SELECT @myStr
'This represents a really long     string that i need multiple lines for, 
dude.'
Run Code Online (Sandbox Code Playgroud)

是否有一些特殊的方法来转义多行字符串中的制表符(就像其他所有语言一样)。

pau*_*sm4 9

您正在寻找反斜杠(“\”):

SET @myStr = 'This represents a really long \
    string that i need multiple lines for, \
    dude.'
Run Code Online (Sandbox Code Playgroud)

  • 嗯 - 我担心你可能遇到了*相反*的问题。计划 B 是 [连接](https://docs.microsoft.com/en-us/sql/t-sql/language-elements/string-concatenation-transact-sql?view=sql-server-2017) 你的字符串: `line 1' + 'line 2' + ...` 如果有帮助,请告诉我们。另一条注释(如果您想在文本字符串中添加或保留换行符):/sf/ask/2562577671/ (2认同)