加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:10:00 所属栏目:MsSql教程 来源:网络整理
导读:这里第一个问题是以下几点.我写了以下代码,一切正常: DECLARE @subject NVARCHAR(100)SET @subject = 'Report executed on ' + CONVERT(VARCHAR(12),GETDATE(),107)SELECT @subject 结果:2012年8月17日执行的报告 但是当设置msdb.dbo.sp_send_dbmail过程的
这里第一个问题是以下几点.我写了以下代码,一切正常:
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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读