SQL-оператор для захвата имен таблиц, представлений, и сохранил procs, порядок схемой

Существует ли SQL-оператор, который перечислит названия всех таблиц, представлений и сохраненного procs от базы данных MS SQL Server, заказанной названием схемы?

Я хотел бы генерировать электронную таблицу Excel из этого списка со столбцами: схема, тип (таблица, представление, сохранила proc), и имя.

7
задан spong 25 March 2010 в 14:10
поделиться

7 ответов

Вот что вы просили:

select 
    s.name as [Schema], 
    o.type_desc as [Type],
    o.name as [Name] 
from
    sys.all_objects o
    inner join sys.schemas s on s.schema_id = o.schema_id 
where
    o.type in ('U', 'V', 'P') -- tables, views, and stored procedures
order by
    s.name
9
ответ дан 6 December 2019 в 23:04
поделиться

Это оператор SQL, который я закончил using:

SELECT   
      CASE so.type
           WHEN 'U' THEN 'table'
           WHEN 'P' THEN 'stored proc'
           WHEN 'V' THEN 'view'
      END AS [type],
      s.name AS [schema],
      so.[name] AS [name]
FROM sys.sysobjects so
JOIN sys.schemas s
ON so.uid = s.schema_id
WHERE so.type IN ('U', 'P', 'V')
ORDER BY [type], [schema], [name] asc
1
ответ дан 6 December 2019 в 23:04
поделиться

TRY:

SELECT
    ROUTINE_SCHEMA,ROUTINE_TYPE ,ROUTINE_NAME
    FROM INFORMATION_SCHEMA.ROUTINES
UNION 
SELECT 
    TABLE_SCHEMA,TABLE_TYPE,TABLE_NAME 
    FROM INFORMATION_SCHEMA.TABLES
UNION 
SELECT 
    TABLE_SCHEMA,'VIEW' ,TABLE_NAME
    FROM INFORMATION_SCHEMA.VIEWS
    ORDER BY ROUTINE_SCHEMA,ROUTINE_TYPE ,ROUTINE_NAME
0
ответ дан 6 December 2019 в 23:04
поделиться

Попробуйте этот SQL, если вам нужно покопаться в столбцах и их типе данных. Вы можете использовать эти опции для sysobjects.xtype (U = User Table, P = Stored Proc, V = View)

SELECT   object_type = sysobjects.xtype,
     table_name = sysobjects.name,
     column_name = syscolumns.name,
     datatype = systypes.name,
     length = syscolumns.length
FROM sysobjects 
JOIN syscolumns ON sysobjects.id = syscolumns.id
JOIN systypes ON syscolumns.xtype=systypes.xtype
   WHERE sysobjects.xtype='U' AND 
syscolumns.name LIKE '%[column_name_here]%' 
AND sysobjects.name LIKE '%[table or Stored Proc Name]%' 
ORDER BY sysobjects.name,syscolumns.colid
0
ответ дан 6 December 2019 в 23:04
поделиться

начать с

select * from sys.sysobjects

РЕДАКТИРОВАТЬ: Теперь со схемой

select * from sys.sysobjects
inner join sys.schemas on sys.sysobjects.uid = sys.schemas.schema_id
0
ответ дан 6 December 2019 в 23:04
поделиться

Вы можете создать запрос, используя системные представления INFORMATION_SCHEMA.TABLES , INFORMATION_SCHEMA.VIEWS и INFORMATION_SCHEMA.COLUMNS

Изменить: О, и INFORMATION_SCHEMA.ROUTINES для сохраненных процессов

1
ответ дан 6 December 2019 в 23:04
поделиться

Есть несколько встроенных системных представлений, которые можно используйте:

  • sys.views
  • sys.tables
  • sys.procedures
  • sys.schema

Дополнительная информация в MSDN о представлениях каталога .

0
ответ дан 6 December 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: