The test tends to be self-grading. The applicants who complain or don't try are right out. The ones who make the attempt often merit further consideration and the ones who ace the test have me as their strongest advocate. The best candidates come to me afterwards with suggestions on how to improve the tests. I'll storm the gates of h*ll to get those kind of people into the organization.
That’s perfect. That way you can just have a dump of the SQL (you said databases, right), and just execute the dump to recreate the database for the next candidate. Then test their counts, group bys, joins, normalization, and what have you.
I had a suggestion for a previous company that had a written test for C/C++ developers: offer applicants a sandbox, as you have done for databases. Software development is essentially an iterative process - conceptualize -> code -> build -> fix errors -> build -> debug and so on. I felt they were weeding out some good candidates by only including the “code” portion of that cycle in the skills assessment.