解決策を見つけるために数日間オンラインで探していましたが、間違った質問をしている可能性があります。 ストアドプロシージャ内に挿入するresetSetを取り出せません
私は以下のストアドプロシージャを持っています.dbにローを挿入すると、出力int(@outResult)を取得したいと思います。これはストアドプロシージャです:
USE [DB1]
GO
/****** Object: StoredProcedure [dbo].[storedProc1] Script Date: 04/12/2016 10:16:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[storedProc1]
-- Add the parameters for the stored procedure here
@inParam nvarchar(max),
@outResult int = 0 OUTPUT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF NOT EXISTS
(
SELECT ID
FROM dbo.table1
WHERE Field1 = @inParam
)
Insert into [DB1].[dbo].[table1]
(
Field1
)
Values (
@inParam
)
SET @outResult = SCOPE_IDENTITY()
END
私は、次のSQLを実行し、結果セットを取得しようとすると: 「不適切な構文のキーワードの近くに 『execを』:
SELECT * FROM (EXEC storedProc1 'field1')
私は次のエラーを取得します"
多分私は最初からこの問題に近づいていますか? 私はこれを調べて解決策を提供します。もし私が見つけたら、どんな考えですか?
selectで参照する場合は、ストアドプロシージャではなくテーブル値関数を使用する必要があります。これは実際の解決策ではないかもしれないことに注意してください。なぜなら、 'OUT'パラメータの使い方を知りたいからです。 –
はい、私はちょうどoutパラメータにアクセスしたいので、私の選択は間違ったアプローチですか? –