pyodbcのドキュメントから
ストアドプロシージャを今すぐ呼び出すには、データベースが認識する形式またはODBC呼び出しエスケープ形式のいずれかを使用してexecuteメソッドに呼び出しを渡します。 (その後、ODBCドライバーは、指定されたデータベースに一致するように呼び出しを再フォーマットします。)
SQL Serverの場合、次のようなものを使用します:
# SQL Server format
cursor.execute("exec sp_dosomething(123, 'abc')")
# ODBC format
cursor.execute("{call sp_dosomething(123, 'abc')}")
したがって、プロシージャを呼び出すには
id_ = 'test'
pw = '12345'
depart = 'none'
class_ = 'GM'
name = 'name'
birthday = 'None'
grade = 3
subgrade = 2
sql = 'exec [my_database].[dbo].[my_table](?, ?, ?, ?, ?, ?, ?, ?)'
values = (id_, pw, depart, class_, name, birthday, grade, subgrade)
cursor.execute(sql, (values))