为什么 PyODBC 认为我的 SQL 只有 1 个参数
Why does PyODBC Thinks my SQL Only has 1 Param
谁能帮我理解为什么 ODBC 只认为我的 sql 中有 1 个参数?
sql = """
IF OBJECT_ID('?', 'U') IS NOT NULL
begin
DROP TABLE ?
end"""
cursor.execute(sql, table_name, table_name)
pyodbc.ProgrammingError: ('The SQL contains 1 parameter markers, but 2 parameters were supplied', 'HY000')
您传递的是文字字符串“?”到 OBJECT_ID 函数。
IF OBJECT_ID('?', 'U') IS NOT NULL
应该是
IF OBJECT_ID(?, 'U') IS NOT NULL
但如果这是 SQL 服务器,则还有另一个问题。不能参数化 DDL 语句,DROP TABLE 是 DDL 语句。
谁能帮我理解为什么 ODBC 只认为我的 sql 中有 1 个参数?
sql = """
IF OBJECT_ID('?', 'U') IS NOT NULL
begin
DROP TABLE ?
end"""
cursor.execute(sql, table_name, table_name)
pyodbc.ProgrammingError: ('The SQL contains 1 parameter markers, but 2 parameters were supplied', 'HY000')
您传递的是文字字符串“?”到 OBJECT_ID 函数。
IF OBJECT_ID('?', 'U') IS NOT NULL
应该是
IF OBJECT_ID(?, 'U') IS NOT NULL
但如果这是 SQL 服务器,则还有另一个问题。不能参数化 DDL 语句,DROP TABLE 是 DDL 语句。