gpt4 book ai didi

带有 varchar 参数的 SQL Server 存储过程返回错误的结果

转载 作者:行者123 更新时间:2023-12-04 03:03:11 24 4
gpt4 key购买 nike

我创建了一个存储过程,该过程采用 varchar(5) 类型的参数。我的存储过程运行良好,并返回正确的结果,直到我向它传递了一个包含 6 个或更多字符的字符串。

发生的事情是它忽略了第 6 个字符,并且仅根据前 5 个字符返回结果,这是错误的结果。当我传递一个较长的字符串时,我希望它会抛出一个错误。

这是一个错误还是有办法改变 SQL Server 的这种行为?

create procedure usp_testproc 
@param1 varchar(5)
as
begin
if @param1 = '12345'
begin
select 'you got this right'
end
else
begin
select 'String Mismatch'
end
end

不管我们是否调用

exec usp_testproc '12345'

exec usp_testproc '123456'

我们得到相同的结果

最佳答案

varchar(5) 

这意味着您将只获取前 5 个字符,因此它将忽略其余字符,“()”内的数字显示您将在此参数中存储多少个符号。您可以确保自己拥有可以从您的程序返回的最长可能的字符串,这样就可以了您可以阅读以下内容: char and varchar (docs.microsoft)

关于带有 varchar 参数的 SQL Server 存储过程返回错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47165045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com