I recently had a similar issue with a scratch table. One of my predecessors had created a scratch table to perform intermediate sums and verify that in/out times added up to the total reported time. Recently we have been receiving deadlock errors from the application, third party software. My initial thought was why is it deadlocking now nothing has changed, then I realized that the only time it became an issue was on Monday mornings when everybody submitted their time. Ah, a traffic issue! My research pointed to a lack of a primary key on the scratch table causing a table lock to be applied for the updates and deletes. I added a primary key to the table and the problem was solved. Lesson learned, always define a primary key it makes everything more efficient not just faster.