I needed to create something similar, so I expounded on what Ghost suggested. I needed to create a top 1000 view for every view in a database order by the first ordinal column descending. Hope this helps someone else...
SELECT CONCAT (
'CREATE VIEW dbo.temp_',
v.name,
' AS select top (1000) * from ',
OBJECT_SCHEMA_NAME (v.object_id),
'.',
v.name,
' ORDER BY [',
c.COLUMN_NAME,
'] DESC;'
) AS viewName
FROM sys.views AS v
LEFT OUTER JOIN INFORMATION_SCHEMA.COLUMNS AS c
ON v.name = c.TABLE_NAME
WHERE c.ORDINAL_POSITION = 1;