@クエリから変数を送信しようとすると問題が発生します。この変数はトリガーによって送信されます。変数はプロシージャ、印刷、および送信内容の表示に適しています。この変数を次のように取得しようとすると問題が発生します。変数を取るのではなく、書いたものの値を取るだけを選択します。
テキストを書くだけなら、メールは問題なく正常に機能しています。また、通常のクエリからデータを取得しますが、変数を含めると失敗します。
変数をselectに入れることを選択したので、'+ @ 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行目のDoomed Error 14661、クエリの実行に失敗しました:Msg 137、レベル15、状態2、サーバーCDPALWIN01 \ CDPALSQL02、1行目
スカラー変数「@q」を宣言する必要があります。
メッセージ3903、レベル16、状態1、プロシージャDEVDATFAC、行180
ROLLBACK TRANSACTION要求には、対応するBEGINTRANSACTIONがありません。
ステートメントは終了されました。