Skip to main content
Stack Overflow is like an encyclopedia, so we prefer to omit these types of phrases. It is assumed that everyone here is trying to be helpful.
Source Link
Dharman
  • 32.6k
  • 25
  • 94
  • 140

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;

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;

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.

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;

Source Link
Keith
  • 11
  • 1

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;