sql-server – 在Transact-SQL中设置参数时如何连接字符串

前端之家收集整理的这篇文章主要介绍了sql-server – 在Transact-SQL中设置参数时如何连接字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这里第一个问题是以下几点.我写了以下代码,一切正常:
DECLARE @subject NVARCHAR(100)
SET @subject = 'Report executed on ' + CONVERT(VARCHAR(12),GETDATE(),107)
SELECT @subject

结果:2012年8月17日执行的报告

但是当设置msdb.dbo.sp_send_dbmail过程的参数时尝试连接上一个字符串时,它将失败

EXEC msdb.dbo.sp_send_dbmail @profile_name='XXX',@recipients='XXXX@XXXXX.com',@subject = 'Report executed on ' + CONVERT(VARCHAR(12),107),@body= @tableHTML,@body_format = 'HTML';

我知道我可以声明并发送一个变量到参数,但我想了解为什么在参数中直接连接时失败.谢谢你的时间和知识

解决方法

T-sql存储过程的参数值不能为表达式.他们需要是一个常量或一个变量.

MSDN – Specify Parameters

The parameter values supplied with a procedure call must be constants or a variable; a function name cannot be used as a parameter value. Variables can be user-defined or system variables such as @@spid.

猜你在找的MsSQL相关文章