SQL Server: Select Top 0?
To name columns in a UNION ALL
Be sure to read Alex K.'s answer as well. He has a lot of reasons that I have used as well. This was just the most obvious one.
Its a way of getting an empty set; for example to create a new empty table with the same columns as an existing one;
SELECT TOP 0 * INTO new_table FROM old_table
Or to act a as source for column names
Or as a way to return column details but no data to a client layer
Or as a query to check connectivity
Its the same as;
SELECT * FROM table WHERE 0=1