を実行することができますので、私は、次のSQL Serverのストアドプロシージャ持つストアドプロシージャにSQL Serverのステートメントを渡す:私は使用してそれを実行ストアドプロシージャが彼らに
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Create date: April 4 2017
-- Description: This stored procedure deletes a selected row from the table.
-- =============================================
ALTER PROCEDURE [dbo].[StoredProcedureTestbench_Delete]
@TestKey INT = NULL
AS
BEGIN
SET NOCOUNT ON; -- NOCOUNT
-- This always deletes the last record from the table.
DELETE FROM StoredProcedureTest
WHERE TestKey = (SELECT MAX(TestKey) FROM StoredProcedureTest)
END;
RETURN
を:
/* This routine executes the stored procedure that deletes a selected StoredProcedureTestbench table row */
SET QUOTED_IDENTIFIER ON
GO
DECLARE @ReturnCode int;
EXECUTE @ReturnCode = dbo.StoredProcedureTestbench_Delete
BEGIN
SELECT @ReturnCode AS Return_Code
END;
GO
すると、それは可能ですストアドプロシージャをパラメータとしてストアドプロシージャを呼び出すプロシージャから'(SELECT MAX(TestKey) FROM StoredProcedureTest)'
を渡しますか?
もっと一般的な意味で、ストアドプロシージャにSQL Serverステートメントを渡して、ストアドプロシージャで実行できるようにするにはどうすればよいですか?
「ストアドプロシージャは彼らに を実行することができるように、ストアドプロシージャにSQL Serverのステートメントを渡す」 - ちょうどありません! –
可能であれば、フラグメントからSQLをアセンブルしないでください。フラグメントからアセンブルする場合は、SQLインジェクションのリスクを避けるために非常に徹底的に行う必要があります。 –
これは可能で簡単です。しかし、... _Alert_誰もあなたにそれを示唆することはありません。上記のコメントを真剣に受け止めてください。 – niksofteng