我在使用Sql Server和pyodbc的Django項目中運行South遷移。這是向後遷移,所以南方正試圖刪除我的一些表格。Sql Server中的DROP CASCADE
南以刪除表執行下面的方法:
def delete_table(self, table_name, cascade=True):
"""
Deletes the table 'table_name'.
"""
params = (self.quote_name(table_name),)
if cascade:
self.execute('DROP TABLE %s CASCADE;' % params)
else:
self.execute('DROP TABLE %s;' % params)
drop_table = alias('delete_table')
的問題是SQL Server不支持級聯下降,因此遷移失敗,出現以下錯誤:
pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'CASCADE'. (156) (SQLExecDirectW)")
我想寫一個南的補丁,以便它可以與Sql Server一起使用。什麼是模擬DROP CASCADE的最佳方法?我認爲使用Python或純SQL的解決方案都是有效的。
通過「模擬」我的意思是,我需要寫代碼,不正是一個DROP CASCADE會如果MSSQL有它實現的事情。 – 2010-09-28 13:41:43