Mengeksekusi stored procedure dengan parameter Output?

Saya telah disimpan prosedur yang saya mencoba untuk tes. Saya mencoba untuk mengujinya melalui SQL Management Studio. Dalam rangka untuk menjalankan tes ini saya masukkan ...

exec my_stored_procedure 'param1Value', 'param2Value'

Akhir parameter adalah output parameter. Namun, saya tidak tahu bagaimana untuk menguji disimpan prosedur dengan parameter output.

Bagaimana cara menjalankan stored procedure dengan parameter output?

Larutan

Cara yang mudah adalah untuk klik-kanan pada prosedur di Sql Server Management Studio(SSMS),

pilih mengeksekusi stored procedure...

dan menambahkan nilai untuk masukan **** parameter seperti yang diminta.

SSMS kemudian akan menghasilkan kode untuk menjalankan proc di jendela query baru, dan jalankan untuk anda. Anda dapat mempelajari kode yang dihasilkan untuk melihat bagaimana hal itu dilakukan.

Komentar (4)

anda dapat melakukan ini :

declare @rowCount int
exec yourStoredProcedureName @outputparameterspOf = @rowCount output
Komentar (2)

Kembali val dari prosedur

ALTER PROCEDURE testme @input  VARCHAR(10),
                       @output VARCHAR(20) output
AS
  BEGIN
      IF @input >= '1'
        BEGIN
            SET @output = 'i am back';

            RETURN;
        END
  END

DECLARE @get VARCHAR(20);

EXEC testme
  '1',
  @get output

SELECT @get 
Komentar (0)

Cek ini, di Mana dua parameter pertama adalah parameter input dan 3 Output parameter dalam definisi Prosedur.

DECLARE @PK_Code INT;
EXEC USP_Validate_Login  'ID', 'PWD', @PK_Code OUTPUT
SELECT @PK_Code
Komentar (0)

Dari http://support.microsoft.com/kb/262499

Contoh:

CREATE PROCEDURE Myproc

@parm varchar(10),
**@parm1OUT varchar(30) OUTPUT**,
**@parm2OUT varchar(30) OUTPUT**
AS
  SELECT @parm1OUT='parm 1' + @parm
 SELECT @parm2OUT='parm 2' + @parm

GO

DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
DECLARE @parmIN VARCHAR(10)
DECLARE @parmRET1 VARCHAR(30)
DECLARE @parmRET2 VARCHAR(30)

SET @parmIN=' returned'
SET @SQLString=N'EXEC Myproc @parm,
                         @parm1OUT OUTPUT, @parm2OUT OUTPUT'
SET @ParmDefinition=N'@parm varchar(10),
                  @parm1OUT varchar(30) OUTPUT,
                  @parm2OUT varchar(30) OUTPUT'

EXECUTE sp_executesql
@SQLString,
@ParmDefinition,
@parm=@parmIN,
@parm1OUT=@parmRET1 OUTPUT,@parm2OUT=@parmRET2 OUTPUT

SELECT @parmRET1 AS "parameter 1", @parmRET2 AS "parameter 2"
GO
DROP PROCEDURE Myproc

Harap ini membantu!

Komentar (0)

Contoh Prosedur :

Create Procedure [dbo].[test]
@Name varchar(100),
@ID int Output   
As  
Begin   
SELECT @ID = UserID from tbl_UserMaster where  Name = @Name   
Return;
END     

Cara memanggil prosedur ini

Declare @ID int    
EXECUTE [dbo].[test] 'Abhishek',@ID OUTPUT   
PRINT @ID
Komentar (0)

Pertama, menyatakan variabel output:

DECLARE @MyOutputParameter INT;

Kemudian, menjalankan prosedur yang tersimpan, dan anda dapat melakukannya tanpa parameter's nama, seperti ini:

EXEC my_stored_procedure 'param1Value', @MyOutputParameter OUTPUT

atau dengan parameter's nama:

EXEC my_stored_procedure @param1 = 'param1Value', @myoutput = @MyOutputParameter OUTPUT

Dan akhirnya, anda dapat melihat hasil output dengan melakukan PILIH:

SELECT @MyOutputParameter 
Komentar (1)

Bagaimana tentang hal ini? It's sangat sederhana:

  1. Yang SPROC di bawah ini memiliki output parameter @ParentProductID

  2. Kita ingin memilih nilai output dari @ParentProductID ke @MyParentProductID yang dinyatakan di bawah ini.

  3. Berikut ini's Kode:

menyatakan @MyParentProductID int

exec p_CheckSplitProduct @ProductId = 4077, @ParentProductID = @MyParentProductID output

pilih @MyParentProductID

Komentar (0)

>Coba ini bekerja dengan baik untuk beberapa parameter output:

CREATE PROCEDURE [endicia].[credentialLookup]
@accountNumber varchar(20),
@login varchar(20) output,
@password varchar(50) output
AS
BEGIN
SET NOCOUNT ON;
SELECT top 1 @login = [carrierLogin],@password = [carrierPassword]
  FROM [carrier_account] where carrierLogin = @accountNumber
  order by clientId, id
END

Try for the result: 
SELECT *FROM [carrier_account] 
DECLARE @login varchar(20),@password varchar(50)
exec [endicia].[credentialLookup] '588251',@login OUTPUT,@password OUTPUT
SELECT 'login'=@login,'password'=@password
Komentar (0)
CREATE PROCEDURE DBO.MY_STORED_PROCEDURE
(@PARAM1VALUE INT,
@PARAM2VALUE INT,
@OUTPARAM VARCHAR(20) OUT)
AS 
BEGIN
SELECT * FROM DBO.PARAMTABLENAME WHERE PARAM1VALUE=@PARAM1VALUE
END

DECLARE @OUTPARAM2 VARCHAR(20)
EXEC DBO.MY_STORED_PROCEDURE 1,@OUTPARAM2 OUT
PRINT @OUTPARAM2
Komentar (0)

Berikut ini adalah prosedur yang tersimpan

create procedure sp1
(
@id as int,
@name as nvarchar(20) out
)
as
begin
select @name=name from employee where id=@id
end

Dan berikut ini adalah cara untuk menjalankan prosedur

 declare @name1 nvarchar(10)
    exec sp1 1,@name1 out
    print @name1
Komentar (0)

Silahkan cek di bawah ini contoh untuk mendapatkan output variabel nilai dengan menjalankan prosedur yang tersimpan.

    DECLARE @return_value int,
    @Ouput1 int,
    @Ouput2 int,
    @Ouput3 int

EXEC    @return_value = 'Your Sp Name'
        @Param1 = value1,
        @Ouput1 = @Ouput1 OUTPUT,
        @Ouput2 = @Ouput2 OUTPUT,
        @Ouput3 = @Ouput3 OUTPUT

SELECT  @Ouput1 as N'@Ouput1',
        @Ouput2 as N'@Ouput2',
        @Ouput3 as N'@Ouput3'
Komentar (0)

I'm menggunakan parameter output dalam SQL Proc dan kemudian saya menggunakan nilai-nilai ini dalam resultset.

Komentar (0)