Существует ли SQL-оператор, который перечислит названия всех таблиц, представлений и сохраненного procs от базы данных MS SQL Server, заказанной названием схемы?
Я хотел бы генерировать электронную таблицу Excel из этого списка со столбцами: схема, тип (таблица, представление, сохранила proc), и имя.
Вот что вы просили:
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
Это оператор 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
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
Попробуйте этот 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
начать с
select * from sys.sysobjects
РЕДАКТИРОВАТЬ: Теперь со схемой
select * from sys.sysobjects
inner join sys.schemas on sys.sysobjects.uid = sys.schemas.schema_id
Вы можете создать запрос, используя системные представления INFORMATION_SCHEMA.TABLES
, INFORMATION_SCHEMA.VIEWS
и INFORMATION_SCHEMA.COLUMNS
Изменить: О, и INFORMATION_SCHEMA.ROUTINES
для сохраненных процессов
Есть несколько встроенных системных представлений, которые можно используйте:
Дополнительная информация в MSDN о представлениях каталога .