存储过程如果存在不给出正确答案
Posted
技术标签:
【中文标题】存储过程如果存在不给出正确答案【英文标题】:Stored procedure if exists not giving correct answer 【发布时间】:2010-10-15 16:26:13 【问题描述】:我创建了一个 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】:我认为您需要在某处添加and [CRID] = @myECR
。现在您只是在检查是否有任何记录已获得SuperApproved。
【讨论】:
哎呀-是的-我的错!你绝对正确。感谢您的回复! @randy 不客气。如果我的回答对您有所帮助,请点击左侧的复选标记将其作为答案。以上是关于存储过程如果存在不给出正确答案的主要内容,如果未能解决你的问题,请参考以下文章