如果存在没有给出正确答案的存储过程

时间:2010-10-15 16:26:13

标签: stored-procedures exists

我创建了一个sql 2005存储过程,告诉我我正在搜索的CRID是否得到了主管的批准。 [SuperApproved]有点,[CRID]是char(36)。即使CRID不存在,我仍然得到1。 写这个有什么帮助?

USE [cr_Saturn2]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:  Randy Baker
-- Create date: 10/12/2010
-- Description: Check for Approved CRID in CostReportTracking
-- =============================================
alter PROCEDURE [dbo].[st_Is_CostReportApproved]
 -- Add the parameters for the stored procedure here
 @myECR char(36) = null  
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

if exists(
 select [CRID]
 from [dbo].[CostReportTracking]
 where [SuperApproved] = 1)

 -- exists- cost report is Approved by Supervisor
 select 1
else
 -- does not exist
 select 0    
END

1 个答案:

答案 0 :(得分:2)

我认为您需要在某处添加and [CRID] = @myECR。现在您只是检查任何记录是否已经超级批准