今天项目使用到调用一个sql server的存储过程读取其中内容然后存到另一张表,作为一个看板使用的数据。百度了一圈,亲测下面方法可用!
一 安装sql server的库
二 配置数据库读取存储过程
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}'