title: SQL Batched Delete
body: <p>I have a table in SQL Server 2005 which has approx 4 billion rows in it.  I need to delete approximately 2 billion of these rows.  If I try and do it in a single transaction, the transaction log fills up and it fails.  I don't have any extra space to make the transaction log bigger.  I assume the best way forward is to batch up the delete statements (in batches of ~ 10,000?).</p>
  
  <p>I can probably do this using a cursor, but is the a standard/easy/clever way of doing this?</p>
  
  <p>P.S. This table does not have an identity column as a PK. The PK is made up of an integer foreign key and a date.</p>