Sql server SQL存在问题
这一次我要发疯了。我有以下SP: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))
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的答案。无论如何谢谢你