You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地MSSQL正常运行的Loginuser存储过程在GoDaddy MyLittleAdmin中异常

解决Loginuser存储过程在GoDaddy MyLittleAdmin执行异常的问题

先把你的存储过程代码格式化出来,方便排查:

alter proc [dbo].[Loginuser] 
    @Username nvarchar(100), 
    @Password nvarchar(100) 
as 
begin 
    Declare @Retrycount int 
    Declare @count int 
    Declare @Accountlocked bit 
    Declare @Rolename nvarchar(20) 
    select @Accountlocked = Islocked from tbl_Userinfo where Email = @Username 
    if(@Accountlocked = 1) 
    begin 
        select 1 as Accountlocked ,0 as authenticated,0 as Retryattempts 
    end
    -- 省略后续未粘贴的代码
end

下面是几个大概率导致问题的原因和对应的解决步骤:

  • 权限不匹配
    本地你大概率用的是高权限账号(比如sa),但GoDaddy给的数据库账号权限通常有限。你需要检查两个点:

    1. 确认GoDaddy的账号有执行[dbo].[Loginuser]的权限;
    2. 确认该账号能读取tbl_Userinfo表。
      如果你的账号有授权权限,可以在MyLittleAdmin里执行这两句来补全权限:
    GRANT EXECUTE ON [dbo].[Loginuser] TO [你的GoDaddy数据库用户名];
    GRANT SELECT ON [dbo].[tbl_Userinfo] TO [你的GoDaddy数据库用户名];
    
  • NULL值处理逻辑的坑
    本地和GoDaddy服务器的ANSI_NULLS设置可能不一样。当传入的@Username在表中不存在时,@Accountlocked会被赋值为NULL。如果GoDaddy那边开启了默认的ANSI_NULLS,那么@Accountlocked = 1这个判断会返回UNKNOWN,不会进入对应的分支;而如果本地你关闭了这个设置,判断结果会是FALSE,逻辑就不一样了。
    改一下存储过程的判断逻辑,明确处理NULL情况:

    -- 替换原来的if判断
    IF (@Accountlocked IS NOT NULL AND @Accountlocked = 1)
    BEGIN
        SELECT 1 AS Accountlocked, 0 AS authenticated, 0 AS Retryattempts
    END
    -- 最好再加个账号不存在的分支
    ELSE IF (@Accountlocked IS NULL)
    BEGIN
        SELECT 0 AS Accountlocked, 0 AS authenticated, 0 AS Retryattempts, '用户不存在' AS Message
    END
    
  • 参数传递格式错了
    在MyLittleAdmin里执行存储过程时,参数传递要注意细节:

    1. 传递nvarchar类型的参数时,必须加N前缀,比如N'your@email.com',不然会被隐式转成varchar,和表中Email字段的nvarchar类型不匹配,查不到数据;
    2. 如果参数值有特殊字符,要正确转义。
      正确的执行语句应该是这样的:
    EXEC [dbo].[Loginuser] @Username = N'test@example.com', @Password = N'yourpassword';
    
  • 数据库上下文没切对
    有时候在MyLittleAdmin里默认打开的是系统数据库(比如master),直接执行存储过程会找不到对象。先确认你已经切换到了存储过程所在的业务数据库,再执行。

  • 存储过程代码没同步
    有可能你在本地修改了存储过程,但没把最新代码同步到GoDaddy服务器。重新在MyLittleAdmin里执行一遍ALTER PROCEDURE语句,确保两边代码一致。

内容的提问来源于stack exchange,提问作者ch gopi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:48:12