gpt4 book ai didi

SQL内插字符串

转载 作者:行者123 更新时间:2023-12-04 22:15:36 26 4
gpt4 key购买 nike

T-SQL是否支持插值字符串?

让我们举这个例子:

SET @query = 'SELECT ' + @somevariable + ' FROM SOME_TABLE'

我希望能够做这样的事情:
SET @query = 'SELECT {@somevariable} FROM SOME_TABLE'

感谢您的回答!

最佳答案

感谢@ j.f.sebastian指出了这些解决方案。可悲的是xp_sprintf限制为254个字符,因此在使用长查询时并不是理想的选择。而是将FORMATMESSAGE限制为2047个字符,因此足以运行较长的查询。

我将在一篇文章中总结所有解决方案,以使事情井井有条。

答案1:

使用FORMATMESSAGE重要的是要知道,首先将插值字符串用作参数,它仅支持SQL版本2012及更高版本,因此我将用FORMATMESSAGE发布2个答案:
SQL版本> = 2012:

SET @query = FORMATMESSAGE('SELECT %s FROM SOME_TABLE', @somevariable);

SQL版本<2012:
EXEC sp_addmessage 50001, 16, 'SELECT %s FROM SOME_TABLE', NULL, NULL, 'replace'
SET @query = FORMATMESSAGE(50001, @somevariable)

答案2:

使用 xp_sprintf存储过程要特别注意,该存储过程限制为254个字符,因此对于长查询而言,这不是一个好主意。
DECLARE  @query AS VARCHAR(100)
,@somevariable as VARCHAR(10) = '[id]'
EXEC xp_sprintf @query OUTPUT, 'SELECT %s FROM SOME_TABLE', @somevariable

关于SQL内插字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48495260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com