在pymssql中调用SQL SERVER的存储过程时传递可选参数

时间:2019-04-15 07:25:00

标签: python sql-server pymssql

我正在使用pymssql库使用存储过程从MS SQL Server检索数据。 在传递强制参数时,我没有问题。

如何在pymssql中传递可选参数?

我存储的proc有5个参数,其中2个是必需参数,而3个是可选参数。

procedure_connection.cursor.callproc('PROCEDURE_NAME', (mandatory_parameter_1,mandatory_parameter_2))   

我必须以什么顺序传递可选参数?

procedure_connection.cursor.callproc('PROCEDURE_NAME', (mandatory_parameter_1,mandatory_parameter_2,optional_parameter_1))   

procedure_connection.cursor.callproc('PROCEDURE_NAME', (mandatory_parameter_1,mandatory_parameter_2,optional_parameter_2))   

procedure_connection.cursor.callproc('PROCEDURE_NAME', (mandatory_parameter_1,mandatory_parameter_2,optional_parameter_3))   

procedure_connection.cursor.callproc('PROCEDURE_NAME', (mandatory_parameter_1,mandatory_parameter_2,optional_parameter_1,optional_parameter_2,optional_parameter_3,))

procedure_connection.cursor.callproc('PROCEDURE_NAME', (mandatory_parameter_1,mandatory_parameter_2))   

我想传递可选参数,并确保设置了正确的参数而不是其他参数。

1 个答案:

答案 0 :(得分:2)

使用“ EXEC”命令调用存储过程,该命令使您可以确定要使用的参数:

sql = """EXEC PROCEDURE_NAME @mandatory_parameter1=?, @mandatory_parameter2=?, @optional_parameter3=?"""

params = (mandatory_parameter1_value, mandatory_parameter1_value, optional_parameter3_value)

procedure_connection.cursor.execute(sql, params)