SQL Serverでストアドプロシージャを実行し、変数に出力を割り当てる(単一の値を返す)必要がありますか?ストアドプロシージャの出力をSQL Serverの変数に返す方法
37
A
答えて
79
。それは単一の整数値がある場合は、非整数値、またはスカラー値の数を持っている場合
は、あなたは、あなたが出力パラメータを使用することができますreturn
声明
create proc myproc
as
begin
return 1
end
go
declare @i int
exec @i = myproc
を使用することができます
create proc myproc
@a int output,
@b varchar(50) output
as
begin
select @a = 1, @b='hello'
end
go
declare @i int, @j varchar(50)
exec myproc @i output, @j output
あなたがデータセットを返すようにしたい場合は、使用することができます
insert exec
create proc myproc
as
begin
select name from sysobjects
end
go
declare @t table (name varchar(100))
insert @t (name)
exec myproc
あなたも、カーソルを返すことができますが、それはので、私は例をしてはならないだけで恐ろしいです:)
7
ストアドプロシージャ内でreturn
ステートメントを使用すると、整数ステータスコード(および整数型のみ)を返すことができます。慣例により、成功のためにゼロの戻り値が使用されます。
return
が明示的に設定されていない場合、ストアドプロシージャはゼロを返します。
CREATE PROCEDURE GetImmediateManager
@employeeID INT,
@managerID INT OUTPUT
AS
BEGIN
SELECT @managerID = ManagerID
FROM HumanResources.Employee
WHERE EmployeeID = @employeeID
if @@rowcount = 0 -- manager not found?
return 1;
END
そして、あなたはこのようにそれを呼び出す:
DECLARE @return_status int;
DECLARE @managerID int;
EXEC @return_status = GetImmediateManager 2, @managerID output;
if @return_status = 1
print N'Immediate manager not found!';
else
print N'ManagerID is ' + @managerID;
go
あなたが唯一のステータスコードの戻り値を使用する必要があります。データを返すには、出力パラメータを使用する必要があります。
データセットを返す場合は、タイプcursor
の出力パラメータを使用します。あなたが戻りたい情報の性質に依存
+3
@downvoter、何が間違っているのか説明してもらえますか? –
3
使用このコードは、適切に
CREATE PROCEDURE [dbo].[sp_delete_item]
@ItemId int = 0
@status bit OUT
AS
Begin
DECLARE @cnt int;
DECLARE @status int =0;
SET NOCOUNT OFF
SELECT @cnt =COUNT(Id) from ItemTransaction where ItemId = @ItemId
if(@cnt = 1)
Begin
return @status;
End
else
Begin
SET @status =1;
return @status;
End
END
作業は何SP
DECLARE @statuss bit;
EXECUTE [dbo].[sp_delete_item] 6, @statuss output;
PRINT @statuss;
関連する問題
- 1. 出力値のnullを返すSQL Server 2008ストアドプロシージャ
- 2. SQL Serverストアドプロシージャの結果を.Netに返す方法
- 3. Sql Server(2008)のストアドプロシージャにトレース/デバッグ出力を追加する方法
- 4. SQL Server:ストアドプロシージャの入力テーブルの変数の回避策
- 5. SQL Server:ストアドプロシージャ内のオプションの変数
- 6. SQL Serverのストアドプロシージャからcsv出力ファイルを作成する方法
- 7. SQLストアドプロシージャをSQL Server 2000から呼び出す方法は?
- 8. 出力変数がSQL Serverストアドプロシージャに設定されていない
- 9. SQL Server:ストアドプロシージャから複数のテーブル出力を別のテーブルに挿入する
- 10. SQL Serverのストアドプロシージャ - 便番号を返す
- 11. どのようにSQL Serverのストアドプロシージャの出力パラメータC#
- 12. SQL Server 2005のストアドプロシージャのソースコードを出力する
- 13. SQL Serverのストアドプロシージャの変更を自動化する方法は?
- 14. C#関数のストアドプロシージャから複数の出力パラメータを返す方法
- 15. SQL Server 2008でストアドプロシージャとテーブルの総数を数える方法
- 16. c#asp.netのSQL Serverストアドプロシージャから複数の行を返す?
- 17. CでSQL Serverストアドプロシージャの数値パラメータを使用する方法#
- 18. SQL Serverストアドプロシージャの出力パラメータとResultSet値の両方を取得する
- 19. SQL Serverストアドプロシージャからvarcharを返す
- 20. 複数のデータセットをSQL Serverストアドプロシージャから返す
- 21. SQL Serverのクエリでストアドプロシージャから変数を設定する方法
- 22. .NETのストアドプロシージャから出力パラメータを返す方法
- 23. ストアドプロシージャのSQL Serverテーブルに変数を挿入します。
- 24. 別のストアドプロシージャを呼び出すSQL Serverストアドプロシージャの問題
- 25. SQL Serverのストアドプロシージャ
- 26. SQL Serverのストアドプロシージャ
- 27. SQL Serverのストアドプロシージャ
- 28. t-sql(SQL Server)のストアドプロシージャをpgsql(postgre sql)に変換するツール
- 29. ストアドプロシージャを使用して出力変数の数を取得する方法は?
- 30. SQL 2005で複数のレコードセットを返すストアドプロシージャを読み取る出力
を実行しますストアドプロシージャが返されますか?単一の値ですか?結果セット? –