You need to enable JavaScript to run this app. 字符串比较条件下如何从stored procedure(存储过程)获取输出结果?
优惠活动
大模型
产品
解决方案
定价
更多

字符串比较条件下如何从stored procedure(存储过程)获取输出结果?

问题解决方法

核心原因

你定义的@CityName参数未指定varchar类型长度,SQL Server在参数声明场景下未显式指定长度的varchar默认长度为1,你传入的城市名称会被截断为仅保留首字符,无法和表中完整的CityName值匹配,因此无返回结果。

修复方案

修改存储过程的参数声明,给@CityName指定和表中CityName字段完全一致的长度(比如表中字段为varchar(100),参数就对应设置为相同长度)即可,修正后的代码示例如下:

ALTER PROCEDURE [dbo].[PR_City_SelectByPK]
@CityName varchar(100) -- 此处长度替换为你表中CityName字段的实际长度
AS
SELECT [dbo].[City].[CityName], [dbo].[City].[State]
FROM [dbo].[City]
WHERE [dbo].[City].[CityName] = @CityName

额外排查建议

  • 所有字符串类型的参数、变量声明都要显式指定长度,避免出现隐式截断问题
  • 若修改后仍无返回结果,可先执行独立查询验证数据是否存在:
    SELECT [CityName], [State] FROM [dbo].[City] WHERE [CityName] = '你要查询的城市名称'
    
    确认有返回结果后再调用存储过程验证。

内容的提问来源于stack exchange,提问作者Chaitanya Bathia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 03:57:00