今天項目使用到調用一個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}'