Sometimes we do very ugly thing just because of missing simple tricks.
I believe all of the devs who work with sql use SELECT TOP command as they need. This is a very simple sql command.
SELECT TOP 10 * FROM YOURTABLE
Now, sometimes you need to use variable instead of constant number (say 10). If you write the query as
SET @count = 20 SELECT TOP @count * FROM YOURTABLE
you will get a syntax error.
To solve this issue, we sometimes write dynamic sql (Sql statements constructed inside a string variable) and execute that.
But we all know dynamic sql is always bad for many reasons and we should avoid that as far as we can.
We can avoid dynamic sql in this scenario very easily with a simple trick. Once you know that, you will laugh at yourself if you really used dynamic sql for this scenario.
SET @count = 20 SELECT TOP (@count) * FROM YOURTABLE
Did you mark the trick? Yes you just need enclose the variable with a Bracket ().