sqlserver 存储过程调用报错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver 存储过程调用报错相关的知识,希望对你有一定的参考价值。

sqlserver数据库中有两个存储过程A和B,存储过程A中调用了B,执行A时,提示错误,且错误提示是B中的列明“***”无效,但是使用相同的参数单独调用B就可以执行成功,这是什么原因?

存储过程问题
不是提示了吗?
PAYSTAT24MONTH 无效
你看是不是写错列名了。
或者你A调用B的时候某些参数类型变了。
你可通过print来打印出你运行到的步骤来调试的。
参考技术A 错误提示 贴出来
请采纳!

pymssql调用sqlserver存储过程带output 参数

pymssql调用sqlserver存储过程带output 参数

直接上代码

def api_adddept():
    data = json.loads(request.get_data())
    userdata={}
    
    with UseDataBaseSQLServer() as cursor:

        msg=cursor.callproc([AppData].[dbo].[Fyit_AddDept], (data["parentdept_add"],data["deptname_add"],1,pymssql.output(str),pymssql.output(str)))
        userdata[result_code]=msg[3]
        userdata[result_msg]=msg[4]
        
        # sql=‘DECLARE @return_value int,@result_code nvarchar(1024),@result_msg nvarchar(1024);‘
        #     ‘EXEC @return_value = [AppData].[dbo].[Fyit_AddDept] @parentid = {0},@dept = N‘{1}‘,@display = 1,@result_code = @result_code OUTPUT,@result_msg = @result_msg OUTPUT;‘
        #     ‘SELECT    @result_code as N‘@result_code‘,@result_msg as N‘@result_msg‘,@return_value as N‘Return Value‘;‘

        # cursor.execute(sql.format(data["parentdept_add"],data["deptname_add"]))  
        # result = cursor.fetchone()  
# while result: # userdata[‘resultcode‘]=str(result[0]) # userdata[‘resultmsg‘]=result[0] # userdata[‘returnvalue‘]=str(result[2]) # break resp = jsonify(userdata) resp.status_code = 200 return resp

 

其上两种写法都可行。

第一种简单,方便。第二种还要自己拼SQL。

 

以上是关于sqlserver 存储过程调用报错的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver里存储过程怎么调用存储过程

sql server 存储过程如何调用存储过程

在Net下调用SqlServer2k中存储过程

sqlserver如何自动调用存储过程, 24小时执行一次?

sqlserver如何调用外部数据库的存储过程

我如何用JAVA调用存储过程取得 serveroutput?