2009-02-14 3 views
15

Ich habe wie 20 oder so Tabellen in der Datenbank RentalEase und ich möchte sie (physisch) ausdrucken, damit ich sie einfacher betrachten kann. Mir ist es egal, welche Daten in ihnen sind, nur ihre Struktur. Wie kann ich das machen?Drucktabelle Struktur/Schema

Es ist ein SQL Express-Server und ich verwende Microsoft SQL Server Management Studio Express, um es zu verwalten. Ich erinnere mich, als ich MySQL und PHP benutzt habe, konnte ich ein DESCRIBE benutzen, um es auszudrucken, aber ich erinnere mich nicht, wie ich es gemacht habe. Es scheint nicht ein

Antwort

28

Versuch für SQL Server DESCRIBE zu sein:

sp_help <table_name> 
+0

ich dies täglich verwenden, aber Sie können die EXEC – banjollity

+4

nicht fair fallen! Du hast es bearbeitet ... – banjollity

+3

Ich war verwirrt, warum das nicht funktionierte, bis ich feststellte, dass '' 'dbname.schema.tablename'' so etwas wie' 'mydb.dbo.mytable'' –

4

Sie können Datenbank-Schema-Diagramm-Design-Tool verwenden. Legen Sie einfach alle Tabellen aus, und Sie werden das Diagramm Sie Datenbank einschließlich aller Schlüssel

6

in Management Studio

  1. Klicken Sie auf das „+“ neben Ihrer Datenbank erweitern die Objekte darunter erhalten, und klicken Sie auf „Tabellen“
  2. öffnen Sie die Tabellen Detailansicht von „view“ wählen -> „Object Explorer Details“ aus dem Menü
  3. nun alle Tabellen auswählen (auf der rechten Seite in dem Objekt Details)
  4. Rechtsklick auf eine der ausgewählten Tabellen (auf der rechten Seite)
  5. "Script-Tabelle als" ->
  6. "File" oder "Zwischenablage"

Dieses eine Skriptdatei alle ausgewählten Datei Schemadefinitionen produzieren "Erstellen" enthält.

+1

Not sein musste eine adäquate Lösung für IMAO, um hier aufgelistet zu werden. –

9

Sie können die INFORMATION_SCHEMA-Ansichten immer überprüfen, um alle interessanten Informationen über Tabellen und ihre Spalten zu finden.

Es ist nicht „beschreiben“ per se genannt - aber diese Abfrage finden Sie viele Informationen zeigen:

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

Marc

2

Hier ist ein Skript, das ich das einfach geschrieben jede Tabelle und ihre Spalten aufgelistet in ein Format wie:

Tabellenspalten

tabelle1 column1, column2 ... columnX

Das Skript ist:

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