SQL EXISTS的问题

时间:2012-06-18 13:04:48

标签: sql-server exists

我对这个发疯了。我有以下SP:

ALTER PROCEDURE [BankImport].[spBI_getIsBatchUnique]
    @batchName varchar = 500
AS
BEGIN
    SET NOCOUNT ON;
    IF (EXISTS (SELECT 1 FROM [ACN_Main].[BankImport].[tblBI_Jobs]
            WHERE [batchNumber] = @batchName))
        BEGIN
            SELECT 1
        END
    ELSE
        BEGIN
            SELECT 0
        END     
    END
GO

但不管请求是什么,我总是回到0!

我试图通过多种方式对其进行修改,但没有成功! 我需要做的是检查是否有一个包含该批号的记录并返回true,否则返回false。

任何提示?

由于

2 个答案:

答案 0 :(得分:8)

您的输入参数看起来有点搞笑

@batchName varchar = 500

应该这样吗?

@batchName varchar(500)

即设置varchar数据类型的长度,当前的方式,500是batchName参数的默认值。

答案 1 :(得分:1)

我认为因为您比较batchNumber和batchName,请尝试

EXISTS (SELECT 1 FROM [ACN_Main].[BankImport].[tblBI_Jobs]
        WHERE [batchName] = @batchName)