특정 전문가에게 할당 된 제안 목록을 제공하는 첫 번째 저장 프로 시저의 결과를 사용하려고합니다. 그 결과에서 나는 그 제안들의 관련 프로젝트들을 원한다.중첩 저장 프로 시저 SQL 호출 방법
내 첫 번째 쿼리는 다음과 같습니다
ALTER proc [dbo].[sp_ExpsAssignedProp]
(
@username as varchar(50)
)
as
begin
select pro.ProposalID,pro.Title,pro.GrantAmount from tbl_Registration reg
inner join tbl_Expert exp On reg.RegID=exp.RegID
inner join tbl_Panel pan On pan.ExpertID_1=exp.ExpertID
OR pan.ExpertID_2=exp.ExpertID
OR pan.ExpertID_3=exp.ExpertID
inner join tbl_Association asso On asso.PanelID=pan.PanelID
inner join tbl_Proposal pro On asso.ProposalID=pro.ProposalID
where [email protected]
end
는 지금은 마무리 두 번째 쿼리하지만 상태는 나에게주는 모든 프로젝트의 결과를 사용하는 노력입니다. 내 관심사는 완성 된 상태로 할당 된 제안서 프로젝트를받는 것입니다.
alter proc [dbo].sp_AssignedProj
(
@username as varchar(50),
@status as varchar(50)
)
as
begin
exec sp_ExpsAssignedProp
select proj.ProjectID, proj.Title, proj.Budget, proj.StartDate, proj.FinishDate, proj.CurrentStatus from
tbl_Proposal prop
inner join tbl_Project proj On prop.ProposalID=proj.ProposalID
where [email protected]
end
*** *** ***는 단지 구조화 된 쿼리 언어 * - 많은 데이터베이스 sys 하지만 데이터베이스 제품이 아닌 ... 많은 것들이 벤더에 따라 다르므로 - ** 우리는 실제로 ** 데이터베이스 시스템 ** (그리고 어떤 버전)을 사용하고 있는지 알고 있어야합니다 (그에 따라 태그를 업데이트하십시오) ... –
사이드 노트 (** SQL Server **를 사용한다고 가정) : 저장 프로 시저에 접두어'sp_'를 사용하지 말아야합니다 **. Microsoft는 [자체 저장을 위해이 접두어를 예약했습니다 (* 저장 프로 시저 명명 * 참조)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx) 및 당신은 미래에 언젠가 이름 충돌의 위험을 감수해야합니다. [저장 프로 시저 성능에 좋지 않습니다.] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). 'sp_'를 피하고 다른 것을 접두어로 사용하는 것이 가장 좋습니다. –
@ marc_s 감사합니다. 저장 프로 시저의 이름을 알지 못했습니다. –