我已经在SQL Server中创建了存储过程(SP),并且必须通过Python脚本运行它。尽管我使用了pyodbc或sqlalchemy,并且它没有输出任何错误,但是对我的数据库没有任何影响。这是我使用过的脚本:
这是在pyodbc中的(我也遵循https://github.com/mkleehammer/pyodbc/wiki/Calling-Stored-Procedures,但与我上面描述的相同,我的数据库没有任何影响)
import pyodbc
server = '___'
database = '___'
username = '___'
password = '___'
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute("""MySP @argInput= 15""")
这是在sqlalchemy中
from sqlalchemy import create_engine
import urllib
from sqlalchemy.orm import sessionmaker
params = urllib.parse.quote_plus(r'Driver={ODBC Driver 17 for SQL Server};Server=___;Database=___;Uid=___;Pwd=___;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;')
conn_str = 'mssql+pyodbc:///?odbc_connect={}'.format(params)
engine_azure = create_engine(conn_str,echo=True)
Session = sessionmaker(bind = engine_azure)
session = Session()
results = session.execute('MySP @argInput= 15')
注意:除此之外,还有人知道如何输出受影响的行,例如在短信中运行SP吗?非常感谢!