T-SQL多行字符串不带缩进字符。

24 浏览
0 Comments

T-SQL多行字符串不带缩进字符。

这似乎很简单...

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

这样做很丑陋

DECLARE @myStr NVARCHAR(MAX)
SET @myStr = '这表示一个非常长的
需要多行的字符串,
伙计。'

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

SELECT @myStr
'这表示一个非常长的字符串,需要多行, 伙计。'

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

DECLARE @myStr NVARCHAR(MAX)
SET @myStr = '这表示一个非常长的
    需要多行的字符串,
    伙计。'

但结果是这样的:

SELECT @myStr
'这表示一个非常长的     需要多行的字符串,
伙计。'

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

0
0 Comments

T-SQL多行字符串没有缩进字符的问题是指在T-SQL中如何表示多行字符串而不使用缩进字符。在T-SQL中,使用反斜杠("\")可以实现多行字符串的表示。例如,使用

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

可以表示一个需要多行的字符串。然而,如果在反斜杠前有空格,则无法实现预期的效果。此外,如果使用空格代替制表符,则无法实现预期的效果,除非只使用一个空格。

对于这个问题,有一个解决方法是将多个字符串进行连接。可以使用字符串连接操作符(+)来连接多个字符串。例如,使用line 1 ' + 'line 2' + ...可以将多个字符串连接起来。另外,如果想在文本字符串中添加或保留换行符,可以参考stackoverflow.com/questions/36608252

至于问题的原因,可能是因为在测试时将整个字符串放在一个缩进块中,导致无法实现预期的效果。同时,也需要了解用户希望字符串的显示效果是什么样的,是否希望是一行连续的字符串,是否在每行前有多余的空格,以及使用不同的字符串连接方式是否有所区别等等。

最后,需要了解用户是如何显示字符串的。是通过在SSMS中使用SQL的SELECT语句显示,还是通过控制台模式的C#应用程序显示,或者其他方式。

0