I write the SQL wrong every time.
-
But it's not really a 'bug thingy': You can select * (meaning all) or columns you name when selecting. When you Delete, it's the whole ROW, not columns, hence the */Column names aren't required. :-)
Think of how stupid the average person is, and realize half of them are stupider than that. - George Carlin
-
I figured I was the only one so I was too embarrassed to ever post about it here. O.o
djj55: Nice but may have a permission problem Pete O'Hanlon: He has my permission to run it.
Yet you quote a DBA. :-D
-
Yet you quote a DBA. :-D
-
I got into the habit of making myself look at the thing I wanted to delete before deleting.
-
I'm so used to writing:
SELECT * FROM [table name]
That you can bet when it's time to delete I'll write:
DELETE * FROM [table name]
I no longer blame myself. I consider it a language design bug thingy.
If get in the habit of putting all your statements inside a transaction, then if you realize you made a mistake you can roll it back without affecting the table. Of course, you have to remember to commit the transaction in a timely manner, otherwise the table remains locked.
If your actions inspire others to dream more, learn more, do more and become more, you are a leader.-John Q. Adams
You must accept one of two basic premises: Either we are alone in the universe, or we are not alone in the universe. And either way, the implications are staggering.-Wernher von Braun
Only two things are infinite, the universe and human stupidity, and I'm not sure about the former.-Albert Einstein -
I've found a very easy way to completely avoid making any mistakes in SQL: I don't use SQL.
You're lucky man. I often wake up in a cold sweat in the middle of the night wondering if I left out the
WHERE
clause when executing aDELETE
. :sigh: /raviMy new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
-
Solid advice but the ONLY time I ever use the delete command is to clear test database tables. I never use delete in production - everything is a log and if the user doesn't want to see it anymore a flag is set on the record. I was getting burned too often by people who would blame me for bad data. Every item and every change is logged and nothing is ever deleted. :^)
Agreed, solid advice, but cloud storage (my company is in Azure now) makes soft deletes expensive. What we've started doing is setting soft deletes on large blobs, then purging those older than 90 days every month or so; if they don't notice it in 90 days, then YAGNI :)
-
I use Squirrel a redneck SQL; GIMME what I need FROM [table name] DELETE what I don't need FROM [table name]
VS2010/Atmel Studio 6.0 ToDo Manager Extension
Version 3.0 now available. There is no place like 127.0.0.1Are you OSS'ing it? I'm originally from Texas, so I'm sure I could assist.
-
I got into the habit of making myself look at the thing I wanted to delete before deleting.
I like doing SELECT COUNT(*) or just SELECT *, making sure my results are valid, then changing it to DELETE. Seems to work for me.
-
Colin Mullikin wrote:
What's SQL...?
An advanced language for querying databases that doesn't involve tons of ridiculously intricate frameworks and mysterious black box middle-tier software. Preferred by people who break out in a rash anytime something becomes more about the architecture then getting stuff done. ;P
The nice thing about it is that you have so many different standard implementations of SQL to choose from, too!
-
They didn't teach us that variant in school... :laugh:
The United States invariably does the right thing, after having exhausted every other alternative. -Winston Churchill America is the only country that went from barbarism to decadence without civilization in between. -Oscar Wilde Wow, even the French showed a little more spine than that before they got their sh*t pushed in.[^] -Colin Mullikin
I went to a southern college. :)
VS2010/Atmel Studio 6.0 ToDo Manager Extension
Version 3.0 now available. There is no place like 127.0.0.1 -
I'm so used to writing:
SELECT * FROM [table name]
That you can bet when it's time to delete I'll write:
DELETE * FROM [table name]
I no longer blame myself. I consider it a language design bug thingy.
I also do that. I think it's a bad habit I picked up with Access, because if I recall correctly, you had to say it like that in Access SQL.
-
MehGerbil wrote:
An advanced language for querying databases
Don't know if I would call it advanced.
-
Personally I use extension methods when writing LINQ, not the SQL like syntax. Anytime I see the SQL syntax my mind goes blank.
-
I also do that. I think it's a bad habit I picked up with Access, because if I recall correctly, you had to say it like that in Access SQL.
I'm not sure, but it may depend on the driver. We use the Jet4 oledb driver for Access and it is quite happy to delete with or without the *. Our apps run can use either SQL Server or Access for the backend, and Delete operations don't require any special handling. (aside from date delimiters) Basically, if it works in Access, it will work in SQL Server, but not always the other way around.
"Go forth into the source" - Neal Morse
-
Clifford Nelson wrote:
Don't know if I would call it advanced.
Having written code for databases that didn't have it I would certainly call it advanced.
Then we have made no progress in 40 years since SQL was developed, if a 40 year old technology is advanced. You must think that there has also been no significant improvement in software languages in since Fortran 1V.
-
Then we have made no progress in 40 years since SQL was developed, if a 40 year old technology is advanced. You must think that there has also been no significant improvement in software languages in since Fortran 1V.
Clifford Nelson wrote:
Then we have made no progress in 40 years since SQL was developed, if a 40 year old technology is advanced. You must think that there has also been no significant improvement in software languages in since Fortran 1V.
That of course has nothing to do with what I said. Unless of course you think that Fortan or something like C++/C+#/Python exist to solve data storage problems.