从存储过程中调用存储过程时,混淆了条件语句。谁能帮我吗?什么是使用SQL Server中的条件从存储过程调用存储过程的正确语法
CREATE PROCEDURE [dbo].[sp_Leaderboard]
@CompetitionId INTEGER
AS
DECLARE @Competition TABLE
(CompId INTEGER,
CompFormat NVARCHAR(10)
)
INSERT INTO @Competition
SELECT CompetitionId, CompetitionFormatType
FROM dbo.Competitions
LEFT JOIN dbo.CompetitionFormat ON dbo.Competitions.CompetitionFormatId = dbo.CompetitionFormat.CompetitionFormatId
WHERE CompetitionId = @CompetitionId
CASE WHEN @Competition.CompFormat = "Strokes" THEN EXEC [dbo].[sp_Strokes] ELSE EXEC [dbo].[sp_Stableford]
另外的东西,我知道我还没有在我的代码照顾的是,我还需要采取参数@CompetitionId我去入过过程。
是的,理论上看起来不错,但我得到的错误:必须声明标量变量“@Competition”。我需要再次申报吗? – gallie 2013-02-24 00:14:06
@gallie:您是否需要为插入到“@竞争”表中的每一行执行过程? – 2013-02-24 00:17:10
@Cory:只会有一行返回。 – gallie 2013-02-24 00:18:29