It just occured to me that when I go to create a new SQL query using VS's query builder, it pre-fills in a query based on the datatable I am building the query with. Normally I just delete the standard query (unless it's sufficient) and write my own, but this morning I was creating a new query to delete a row from a table. Nothing all that complex, and nothing new, I've done it many times, but the pre-filled query is so ridiculously (in my opinion) complex that I thought I might be missing something important.
This is the query that it originally offered up this morning:
DELETE FROM AccountLocations
WHERE (ID = @Original_ID) AND (@IsNull_AccountID = 1 AND AccountID IS NULL OR
AccountID = @Original_AccountID) AND (@IsNull_LocationKey = 1 AND LocationKey IS NULL OR
LocationKey = @Original_LocationKey) AND (@IsNull_LocationName = 1 AND LocationName IS NULL OR
LocationName = @Original_LocationName) AND (@IsNull_FileAs = 1 AND FileAs IS NULL OR
FileAs = @Original_FileAs) AND (@IsNull_SyncAddresses = 1 AND SyncAddresses IS NULL OR
SyncAddresses = @Original_SyncAddresses) AND (@IsNull_PhysicalAddress = 1 AND PhysicalAddress IS NULL OR
PhysicalAddress = @Original_PhysicalAddress) AND (@IsNull_PhysicalCity = 1 AND PhysicalCity IS NULL OR
PhysicalCity = @Original_PhysicalCity) AND (@IsNull_PhysicalState = 1 AND PhysicalState IS NULL OR
PhysicalState = @Original_PhysicalState) AND (@IsNull_PhysicalPostalCode = 1 AND PhysicalPostalCode IS NULL OR
PhysicalPostalCode = @Original_PhysicalPostalCode) AND (@IsNull_PhysicalCountry = 1 AND PhysicalCountry IS NULL OR
PhysicalCountry = @Original_PhysicalCountry) AND (@IsNull_MailingAddress = 1 AND MailingAddress IS NULL OR
MailingAddress = @Original_MailingAddress) AND (@IsNull_MailingCity = 1 AND MailingCity IS NULL OR
MailingCity = @Original_MailingCity) AND (@IsNull_MailingState = 1 AND MailingState IS NULL OR
MailingState = @Original_MailingState) AND (@IsNull_MailingPostalCode = 1 AND MailingPostalCode IS NULL OR
MailingPostalCode = @Original_MailingPostalCode) AND (@IsNull_MailingCountry = 1 AND MailingCountry IS NULL OR
MailingCountry = @Original_MailingCountry) AND (@IsNull_IsHQ = 1 AND IsHQ IS NULL OR
IsHQ = @Original_IsHQ) AND (@IsNull_Created = 1 AND Created IS NULL OR
Created = @Original_Created) AND (@IsNull_Updated = 1 AND Updated IS NULL OR
Updated = @Original_Updated)
I mean I am all for making sure the correct record is removed, but come on! This is ridiculous! 20 lines of SQL to delete one row?
Is it wrong of me to think DELETE FROM AccountLocations WHERE (ID = @DeleteThis)
is totally sufficient and requires about 3 brain cells to understand since "ID" is the PK? Am I missing something here?