• The mistake in the question was overlooking the fact that sys.syscolumns will have different contents in different databases.

    But more than that, you couldn't guarantee the statement would return the same results in the same database: without an ORDER BY clause in the SELECT statement the TOP 20 clause could return any 20 rows.