There are many tools to indent SQL but for this discussion we will only talk 3 indentation tools that are available for free.
The first one will be SQL Complete and indenting addin for SQL Server Management Studio. It is doesn’t require too much effort once you install and configure your preferences then the addin will format you script as you keep typing. There is also a paid version for it with more options. The free version I have used it is somewhat tend to be annoying and even more irritating especially if you copy and paste a piece of script from a different part of your code. If you are interested you could follow this link to get one for your management studio http://www.devart.com/dbforge/sql/sqlcomplete/
The next one will be an online tool http://www.sqlinform.com/free_online_sw.html it is more powerful and with many options. You have to copy your tool and paste on the online tool then once you are done formatting just copy back you script to your Management Studio.
One thing I don’t like about this tool is you have to run Java Applet on your machine for the indentation tool to work and it give warring such as the one below which I don’t like to use it for this reason.
My favorite tool will be http://www.dpriver.com/pp/sqlformat.htm it has more options that will fit a generic sql or specific to other DBMS such as SQL Server, MySQL, ORACLE and DB2. It also has several options what the formatting should look like for keywords, table names, column names, functions and many more.