2009-02-14 16 views
15

Mi piacciono circa 20 tabelle nel database RentalEase e voglio stamparle (fisicamente) in modo da poterle esaminare più facilmente. Non mi interessa troppo dei dati che contengono, solo della loro struttura. Come posso fare questo?Stampa Struttura/schema tabella

È un server SQL Express e sto utilizzando Microsoft SQL Server Management Studio Express per gestirlo. Ricordo quando stavo usando MySQL e PHP, potevo usare un DESCRIBE per stamparlo ma non ricordo come l'ho fatto. Non sembra essere un DESCRIVERE per SQL Server

risposta

28

prova:

sp_help <table_name> 
+0

Io uso questo quotidiano, ma si può cadere l'EXEC – banjollity

+4

Non è giusto! Lo hai modificato ... – banjollity

+3

Sono rimasto sconcertato sul motivo per cui questo non ha funzionato fino a quando ho realizzato che '' doveva essere ''dbname.schema.tablename'' quindi qualcosa come'' mydb.dbo.mytable'' –

4

È possibile utilizzare Database Schema Schema Design Tool. Basta inserire tutti i tavoli lì, e si otterrà il diagramma di voi banca dati con tutti i tasti

6

In Management Studio,

  1. Fare clic su "+" accanto al database espandere gli oggetti sottostanti e cliccare su "tabelle"
  2. Aprire la visualizzazione tabelle dettaglio selezionando "Visualizza" -> "Object Explorer dettagli" dal menu
  3. Ora selezionare tutte le tabelle (sul lato destro della strada nei dettagli dell'oggetto)
  4. tasto destro del mouse su una qualsiasi delle tabelle selezionate (sul lato destro)
  5. "tabella di script come" -> "Crea per"
  6. "File" o "Appunti"

Questo produrrà un file di script contenente tutte le definizioni dello schema di file selezionati.

+1

Not una soluzione adeguata per IMAO per essere la pena elencare qui. –

9

È sempre possibile ispezionare le viste INFORMATION_SCHEMA per trovare tutte le informazioni interessanti sulle tabelle e le relative colonne.

Non è chiamato "descrivono" di per sé - ma questa query mostrerà un sacco di informazioni:

select * from Information_schema.Columns 
where table_name = '(your table here)' 

Marc

2

Ecco uno script che ho scritto che elenca semplicemente ogni tavolo e le loro colonne in un formato come:

tabella Colonne

table1 Colonna1 colonna2 ... Columnx

012.

Lo script è:

declare @max_tables int 
declare @max_columns int 
declare @sql nvarchar(400) 
declare @x int 
declare @y int 
declare @table varchar(50) 
declare @columns varchar(800) 

create table #c ([Table] varchar(50),[Columns] varchar(800)) 

select ROW_NUMBER() OVER(ORDER BY name) AS Row, name 
into #table_list 
from sys.objects 
where type_desc = 'USER_TABLE' 
order by name 

set @max_tables = (select count(*) from sys.objects where type_desc = 'USER_TABLE') 
set @y = 0 

while @y < @max_tables 
    begin 
     set @y = @y + 1 
     set @table = (select name from #table_list where row = @y) 

     create table #t (c int) 

     set @sql = 'select count(*) as c from Information_schema.Columns where table_name = ''' + @table + '''' 
     insert into #t exec sp_executesql @sql 

     set @max_columns = (select top 1 c from #t) 

     DROP TABLE #t 

     set @x = 0 
     set @columns = '' 

     while @x < @max_columns 
      begin 
       set @x = @x + 1 
       set @columns = @columns + (select column_name from Information_schema.Columns where table_name = @table and ordinal_position = @x) 
       if @x < @max_columns set @columns = @columns + ', ' 
      end 

     insert into #c select @table,@columns 

    end 

select * from #c 

DROP TABLE #c 
DROP TABLE #table_List 
Problemi correlati