2013-08-09 2 views
1

SQL Server 데이터베이스에 xro_zips_import라는 테이블이 있습니다. 수백만 개의 데이터 행을 포함합니다. 테이블에 'City'및 'CityAliasName'이라는 열이 있습니다. 도시 컬럼을 버리고 CityAliasName을 City로 변경해야합니다. 파이썬에서 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 (most recent call last): File "Z:\Projects\ZipCodes\ftpUpdate.py", line 274, in conn.cursor().execute("{EXEC sp_RENAME} (?,?,?), 'xro_zips_import.CityAliasName', 'City', 'COLUMN'") ProgrammingError: ('42000', '[42000] [Microsoft][SQL Server Native Client 10.0]Syntax error, permission violation, or other nonspecific error (0) (SQLExecDirectW)')

+0

잘 모르겠습니다. (1) 위의 작동하지 않습니다? 그렇지 않다면, 어떻게? 오류 메시지가 나타 납니까? 그렇다면 무엇입니까? (2) 얼마나 자주 컬럼을 삭제하고 파이썬에서이 작업을 수행하는 데 필요합니까? –

+0

삭제 열 부분이 잘 작동하지만 sp_Rename 프로 시저를 실행하는 부분이 작동하지 않습니다. 이것은 내가받는 오류입니다. 프로그래밍 오류 : ('42000', '[42000]') [Microsoft] [SQL Server Native Client 10.0] 구문 오류, 사용 권한 위반 또는 기타 비특이적 오류 (0) (SQLExecDirectW) ') – HKImpact

답변

1

후 나타나는 오류입니다. sp_rename에 대한 구문은 다음과 같습니다.

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