2010-03-25 12 views

risposta

8

Ecco quello che hai chiesto:

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 
0

partenza con

select * from sys.sysobjects 

EDIT: Ora con lo schema

select * from sys.sysobjects 
inner join sys.schemas on sys.sysobjects.uid = sys.schemas.schema_id 
1

È possibile creare una query utilizzando il punto di vista del sistema INFORMATION_SCHEMA.TABLES, INFORMATION_SCHEMA.VIEWS e INFORMATION_SCHEMA.COLUMNS

Edit: Oh, e INFORMATION_SCHEMA.ROUTINES per immagazzinata procs

0

Ci sono alcune costruito in viste di sistema che è possibile utilizzare:

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

Maggiori informazioni sulla MSDN circa Catalog Views.

0

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

Prova questa SQL se avete bisogno di scavare in colonne e digitare come pure i loro dati. È possibile utilizzare queste opzioni per sysobjects.xtype (U = tabella utente, P = proc memorizzato, 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

Questa è la dichiarazione di SQL ho finito per usare:

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 
Problemi correlati