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?
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.
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
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!
Create Procedure [dbo].[test]
@Name varchar(100),
@ID int Output
As
Begin
SELECT @ID = UserID from tbl_UserMaster where Name = @Name
Return;
END
Declare @ID int
EXECUTE [dbo].[test] 'Abhishek',@ID OUTPUT
PRINT @ID
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
Bagaimana tentang hal ini? It's sangat sederhana:
Yang SPROC di bawah ini memiliki output parameter @ParentProductID
Kita ingin memilih nilai output dari @ParentProductID
ke @MyParentProductID
yang dinyatakan di bawah ini.
Berikut ini's Kode:
menyatakan @MyParentProductID int
exec p_CheckSplitProduct @ProductId = 4077, @ParentProductID = @MyParentProductID output
pilih @MyParentProductID
>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
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
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
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'