2017-08-01 6 views
0

は、この手順はSQL Serverを使用して別のプロシージャを呼び出して、2つ以上の変数に値を初期化する方法はありますか?

select @className = Name 
from dbo.ClassNames 
where [email protected] 

select @sectionName = SectionName 
from dbo.ClassSections 
where [email protected] 

select @className as 'Class Name',@sectionName as 'Section Name' 

他の手続きと呼ばれるように持っていると言うです:

declare @className nvarchar(50), 
@sectionName nvarchar(50) 

EXEC [dbo].[testAll] 
     @[email protected] 

上記の手順を呼び出すことによって@classNameと@classSectionに値をASSINGするので、どのように?

答えて

1

はOUTPUT https://technet.microsoft.com/en-us/library/ms187004(v=sql.105).aspx

create procedure spOne (@param1 int OUTPUT, @param2 varchar(20) OUTPUT) 

as 

select @param1= x from table 


create procedure spTwo (@param1 int, @param2 varchar(20)) 
as 
select x from table where [email protected] 

を使用して手順はOUTPUT

exec spOne @param1 OUTPUT, @param2 OUTPUT 

を使用して変数

declare @param1 int 
declare @param2 varchar(20) 

EXECプロシージャを宣言し作成今これらの変数はspOne

内部で生成された値を保持しています
exec spTwo @param1, @param2 
+0

ありがとうのbro..itが働いていた...それがお役に立てば幸いです:)...私はほぼfrogot出力パラメータ私はそれが助けてくれてうれしい – Abdullah

+0

@Abdullahを使用して!あなたは正式に回答を受け入れる方法を知っていますか? – Horaciux

+0

申し訳ありません...私はここに新しいです。私は私が知っていることを意味します – Abdullah

0

私はあなたが何かを逃したと思います。実際には、そのようなprocの戻り値を使用することはできませんし、別のプロシージャで変数を代入することもできません。あなたは@regNoで結果をフィルタリングし、普通のように、別の手順でその結果を返すことができ、あなたが必要とする2つのフィールドを返すビューの定義

  1. そのように: 私は2のいずれかの方法でこれを解決するだろう表。
  2. プロシージャの戻り値をOUTPUTフィールドとして使用します。それはテーブルのフィールドかフィールドの単純な1つになります。

関連する問題