python pymssql库调用存储过程

 今天项目使用到调用一个sql server的存储过程读取其中内容然后存到另一张表,作为一个看板使用的数据。百度了一圈,亲测下面方法可用!

一 安装sql server的库
 pip install pymssql


二 配置数据库读取存储过程
import pymssql
"""配置"""
server='xxx'
user ='xxx'
password='xxx'
database='xxx'
"""连接数据库"""
conn = pymssql.connect(server, user, password, database)
cursor = conn.cursor()
cursor.execute(f"exec 存储过程名称 @参数1='xxx',@参数2='xxx',@参数3='xxx',@参数4='xxx'")
result = cursor.fetchall()  #得到结果集
for i in result:
  print(i)  #遍历打印查询结果集的数据
注:变量前面要加@,要是调用存储过程无需传参可忽略;
pymssql 2.0以上可通过cursor.callproc方法调用存储过程cursor.callproc('存储过程','参数元组') 需使用cursor.nextset()才能得到结果集

三 写入数据库
sql = """INSERT INTO [数据库].[文件名].[表名] ([column1],[column2],[column3],[column4]...)
                                  VALUES({value1},{value2},'{value3}',{value4}...);
                                                """.format(
    value1=参数1,
    value2=参数2,
    value3=参数3,
    value4=参数3,
    ...)
cursor.execute(sql)
conn.commit()
conn.close()
注:写入数据库字段若为string,引参时需加个引号,如'{value3}'
原文地址:https://www.cnblogs.com/shiyuheng/p/9933631.html