L'errore non e' sicuramente nel codice ma durante la richiesta d'inserimento in sql server.
La tua richiesta d'inserimento parte quando Sql server sta ancora cancellando i dati e davanti ad un lock della table ti risponde che non può eseguire la tua richiesta.
Devi ricorrere ad una stored procedure strutturata in questo modo,
il mio e' puramente un codice di esempio e per tale va modificato con i valori delle tue tabelle
codice:
-- Stored Procedure N°1 Procedi ad eliminazione
CREATE PROCEDURE DelMyRecords
AS
Delete * from tabella -- tuo delete sql
GO
-- Stored Procedure N°2 Inserisci dati
CREATE PROCEDURE InsMyRecords
AS
Insert into tabella(campo) VALUES 'aaa'
GO
-- Stored Procedure Madre Cancella ed inserisci
CREATE PROCEDURE DelAndCreate
EXECUTE DelMyRecords
EXECUTE InsMyRecords
Da codice devi richiamare la tua Procedura DelAndCreate che prima di tutto richiama una stored procedure che procede all'eliminazione dei dati, una volta che i dati sono stati eliminati passa all'inserimento.
Facci sapere