2009-02-14 7 views
15

J'ai environ 20 tables dans la base de données RentalEase et je veux les imprimer (physiquement) pour que je puisse les regarder plus facilement. Je ne me soucie pas trop de ce que les données sont en eux, juste leur structure. Comment puis-je faire ceci?Structure/schéma de la table d'impression

C'est un serveur SQL Express et j'utilise Microsoft SQL Server Management Studio Express pour le gérer. Je me souviens quand j'utilisais MySQL et PHP, je pouvais utiliser un DESCRIBE pour l'imprimer mais je ne me souviens pas comment je l'ai fait. Il ne semble pas être un DESCRIBE pour SQL Server

Répondre

28

essayer:

sp_help <table_name> 
+0

J'utilise ce jour, mais vous pouvez laisser tomber le EXEC – banjollity

+4

Pas juste! Vous l'avez édité ... – banjollity

+3

J'ai été déconcerté de savoir pourquoi cela n'a pas fonctionné jusqu'à ce que je me suis rendu compte que '' devait être '' nombd.schema.tablename'' donc quelque chose comme '' mydb.dbo.mytable'' –

4

Vous pouvez utiliser la base de données de schéma Schéma outil de conception. Il suffit de déposer toutes les tables là-bas, et vous obtiendrez le schéma de vous base de données incluant toutes les clés

6

Dans Management Studio,

  1. Cliquez sur le « + » à côté de la base de données en expansion les objets ci-dessous et cliquez sur « tables »
  2. Ouvrez la vue détaillée des tableaux en sélectionnant « Affichage » -> « Explorateur d'objets détails » dans le menu
  3. maintenant, sélectionnez toutes les tables (sur le côté droit dans les détails de l'objet)
  4. clic droit sur l'une des tables sélectionnées (sur le côté droit)
  5. « script de table sous » -> « Créer à »
  6. « Fichier » ou « Presse-papiers »

Cela produira un fichier de script contenant toutes les définitions de schéma de fichier sélectionné.

+1

Not une solution adéquate à IMAO pour être lisible ici. –

9

Vous pouvez toujours inspecter les vues INFORMATION_SCHEMA pour trouver toutes les informations intéressantes sur les tables et leurs colonnes.

Il ne l'appelle pas « décrire » en soi - mais cette requête va vous montrer beaucoup d'informations:

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

Marc

2

Voici un script que j'ai écrit que qu'énumérer chaque table et leurs colonnes un format comme:

Tableau Colonnes

table1 Column1, colonne2 ... columnX

Le script est:

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