......好吧,不仅仅是PRINT
。我需要为字符串变量赋值,该值将显式子串与整数值混合(可能还有其他类型值)。目标是获取用于记录的字符串。
到目前为止,我使用的代码如下:
DECLARE @msg nvarchar(1000)
...
SET @msg = @procname + 'result = ' + CAST(@result AS nvarchar(5))
+ '; error = ' + CAST(@error AS nvarchar(5))
其中@procname
是sp_my_proc:
之类的字符串,@result
和@error
是整数变量。结果应该是这样的(数字周围没有额外的空格,只有最小长度):
sp_my_proc: result = 3; error = 0
上述方法有效,但是......有没有更好的方法将整数变量转换为字符串而不是CAST(@result AS nvarchar(5))
? (考虑幻数5是一个可忽略的小细节。)
如何解决代码中生成此类字符串的问题?
谢谢,彼得
答案 0 :(得分:1)
在SQL-Server中,您可以使用STR()函数 http://msdn.microsoft.com/ru-ru/library/ms189527.aspx 'length'参数的默认值为10.由于整数变量永远不会超过10个符号(您有溢出),因此总是可以正常工作:
declare @test int
set @test = 333333333
select STR(@test)