更改列名称

时间:2013-08-09 13:49:12

标签: python sql-server-2008 tsql pyodbc

我有一个名为xro_zips_import的表,它位于sql server数据库中。它包含数百万行数据。我在表格中有一个名为“City”和“CityAliasName”的列。我需要删除city列并将CityAliasName更改为City。我不确定如何在Python中正确使用sp_Rename过程。这就是我现在所拥有的。

conn.cursor().execute('ALTER TABLE xro_zips_import DROP COLUMN City')
conn.commit()

conn.cursor().execute("{EXEC sp_RENAME} (?,?,?), ('xro_zips_import.CityAliasName', 'City', 'COLUMN')")
conn.commit()

这是执行sp_RENAME后收到的错误

  

Traceback(最近一次调用最后一次):文件   “Z:\ Projects \ ZipCodes \ ftpUpdate.py”,第274行,in       conn.cursor()。execute(“{EXEC sp_RENAME}(?,?,?),'xro_zips_import.CityAliasName','City','COLUMN'”)ProgrammingError:   ('42000','[42000] [Microsoft] [SQL Server Native Client 10.0]语法   错误,权限违规或其他非特定错误(0)   (SQLExecDirectW)')

1 个答案:

答案 0 :(得分:1)

我最终搞清楚了。对于其他遇到过这种情况的人来说,sp_rename的语法看起来像这样。

conn.cursor().execute("{call sp_rename(?,?,?)}",('xro_zips_import.CityAliasName', 'City', 'COLUMN'))
conn.commit()