Sql server SQL存在问题

Sql server SQL存在问题,sql-server,exists,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))

这一次我要发疯了。我有以下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

有小费吗


谢谢

您的输入参数看起来有点滑稽

@batchName varchar = 500
应该是这样吗

@batchName varchar(500)

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

您的输入参数看起来有点滑稽

@batchName varchar = 500
应该是这样吗

@batchName varchar(500)

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

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

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

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

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

+1此时,它给出了一个
varchar(1)
的默认值
500
,该值将自动截断为
*
。那不是你想要的效果!你在哪里对!!!!多么怀念啊!!!我在上面浪费了两个小时,用不同的方式重写了10次查询!谢谢@MaiOM始终使用长度定义char/varchar/nchar/nvarchar+1此时,它给出了一个
varchar(1)
的默认值
500
,该值将自动截断为
*
。那不是你想要的效果!你在哪里对!!!!多么怀念啊!!!我在上面浪费了两个小时,用不同的方式重写了10次查询!谢谢@MaiOM始终使用长度定义char/varchar/nchar/nvarchar。那只是一场点名比赛。我解决了,检查@mouters的答案。无论如何,谢谢你,这只是一场点名比赛。我解决了,检查@mouters的答案。无论如何谢谢你