title: DROP CASCADE in Sql Server
body: <p>I'm running a South migration in a Django project that uses Sql Server and pyodbc. This is backwards migration so the South is trying to delete a few of my tables.</p>
  
  <p>The South executes the following method in order to drop the tables:</p>
  
  <pre><code>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')
  </code></pre>
  
  <p>The problem is that the Sql Server does not support cascade drops, so the migration fails with the following error:</p>
  
  <pre><code>pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'CASCADE'. (156) (SQLExecDirectW)")
  </code></pre>
  
  <p>I want to write to a patch for the South so that it works with the Sql Server. What would be the best way to simulate a DROP CASCADE? I think that both solutions using python or pure SQL would be valid.</p>