我在尝试从 @ 查询发送变量时遇到问题,该变量由触发器发送,该变量与程序配合得很好,打印并显示我发送的内容,当我尝试将该变量发送到选择不是我取变量,只取我写的值。
如果您只写文本,邮件可以正常工作。我也从普通查询中获取数据,但如果我包含变量失败。
我选择将变量放在 select so '+ @ q +' 中并显示错误
消息 102,级别 15,状态 1,过程 Facturacion_Tope,第 29 行
“+”附近的语法不正确。
并删除单引号符号+
并且不是固定值和变量
USE [sistemas]
GO
/****** Object: StoredProcedure [dbo].[Facturacion_Tope] Script Date: 11/15/2012 07:32:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Facturacion_Tope]
@ENVIO INT
AS
print @ENVIO
BEGIN
SET NOCOUNT ON;
Declare @q INT
--here shows the value of consultation
print @ENVIO
set @q = (select OID from sistemas..DATFACTUR_DINAMICA WHERE OID = @ENVIO)
--here shows the value of consultation
print @q
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'correo_sistemas',
@recipients = 'diegom_montes_contratista@clinica.com.co',
-- @execute_query_database = 'sistemas',
@query = 'select * from sistemas..DATFACTUR_DINAMICA WHERE OID = "@q"',
@query_attachment_filename = 'Consulta.txt',
-- @body = 'Caida en: '@query+'',
@body_format = 'HTML',
@subject = 'Numero de factura';
END
这是存储过程的输出。
209 --prints well
209 -prints well
HAY VA --prints well
209 --prints well
Msg 22050, Level 16, State 1, Line 0
格式查询错误,可能参数无效
第 504 行注定错误 14661,查询执行失败:Msg 137, Level 15, State 2, Server CDPALWIN01\CDPALSQL02, Line 1
必须声明标量变量“@q”。
消息 3903,级别 16,状态 1,过程 DEVDATFAC,第 180 行
ROLLBACK TRANSACTION 请求没有相应的 BEGIN TRANSACTION。
该语句已终止。