附近的语法不正确

附近的语法不正确

尝试执行此操作(在SQL Server Management Studio中)

DECLARE @fun as int
SET @fun = 40
PRINT 'String' + 'Hello!'

EXEC msdb.dbo.sp_senddbmail
    @profile_name = 'Some working profile',
    @recipients = '[email protected]',
    @subject =  'String' + 'Hello!',
    @body = 'Test email sendout'


得到这个错误:


Msg 102,第15级,状态1,第8行
'+'附近的语法不正确。


请注意,第一个串联有效,第二个无效。

我已采取的步骤:

重新输入所有内容(因此不会出现复制粘贴错误)。尝试将其更改为('String'+'Hello!')并得到错误Incorrect syntax near '('.,所以我感到有些失落。

编辑2:我已更改示例,因为当它的两个字符串不涉及强制转换时,会发生相同的错误

最佳答案

传递给存储过程参数的值(在T-SQL中)必须是umm,“单个值”(暂时不认为是技术术语)。您不能使用以下代码:

@subject = A + B + C


你只能有这样的代码

@subject = A


因此,在这种情况下,您将需要以下内容:

DECLARE
  @fun      int
 ,@Subject  nvarchar(255)

SET @fun = 40

SET @Subject = 'String' + 'Hello!'

EXEC msdb.dbo.sp_send_dbmail  --  Added the second underscore...
    @profile_name = 'Some working profile',
    @recipients = '[email protected]',
    @subject = @Subject,
    @body = 'Test email sendout'

关于sql - '+'附近的语法不正确-SQL/TSQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27825956/

10-13 00:57