Хранимая процедура, если существует, не дает правильного ответа - PullRequest
1 голос
/ 15 октября 2010

Я создал хранимый процесс sql 2005, чтобы сообщить мне, одобрен ли контролируемый мной CRID. [SuperApproved] - немного, [CRID] - символ (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 Ответ

2 голосов
/ 15 октября 2010

Я думаю, вам нужно куда-то добавить and [CRID] = @myECR.Прямо сейчас вы просто проверяете, есть ли любая запись, которая была SuperApproved .

...