Pymssql:带参数调用存储过程

3 投票
2 回答
16527 浏览
提问于 2025-04-15 17:26

我正在使用 pymssql 来访问一个 SQL 2005 数据库。我想把参数传递给一个存储过程,但我在写正确的语法时遇到了困难。下面是我调用一个没有参数的存储过程的代码:

import _mssql
connection = _mssql.connect(server='myserver', database='mydatabase', trusted=True)
connection.execute_query('storedProcedureName')

假设我想把 @Id 参数设置为 1。我该怎么做呢?以下这些代码都不管用。文档里对参数的结构说明得不太清楚。

connection.execute_query('storedProcedureName', {'@Id':'1'})
connection.execute_query('storedProcedureName', '@Id=1')
connection.execute_query('storedProcedureName', ('@Id', '1'))

2 个回答

9

对于使用新版 pymssql 的朋友们,你可以这样调用带参数的存储过程:cursor.callproc('storedProcedureName', (1,))

这里的第二个参数是一个元组,里面包含了所有需要的参数。

3

我找到了正确的写法来做到这一点:

connection.execute_query('exec storedProcedureName @Id=1')

撰写回答