2009-02-14 2 views
15

У меня есть примерно 20 таблиц в базе данных RentalEase, и я хочу распечатать их (физически), чтобы я мог смотреть на них легче. Мне все равно, о каких данных в них, о их структуре. Как я могу это сделать?Структура/схема таблицы печати

Это сервер SQL Express, и я использую Microsoft SQL Server Management Studio Express для управления им. Я помню, когда я использовал MySQL и PHP, я мог использовать DESCRIBE для его распечатки, но я не помню, как я это сделал. Там, кажется, не быть ОПИСАТЬ для SQL Server

ответ

28

попробовать:

sp_help <table_name> 
+0

Я использую это ежедневно, но вы можете оставить ехес – banjollity

+4

Нет справедливой! Вы его отредактировали ... – banjollity

+3

Я был сбит с толку, почему это не сработало, пока я не понял, что '' должен быть '' dbname.schema.tablename'', что-то вроде '' mydb.dbo.mytable'' –

4

Вы можете использовать схемы базы данных Схема Design Tool. Просто поместите все таблицы там, и вы получите диаграмму вас базы данных, включая все ключи

6

В Management Studio,

  1. Нажмите кнопку «+» рядом с базой данных расширения объектов под ним и нажмите «таблицы»
  2. Открыть вид таблицы подробно, выбрав «View» -> «Объект описания Проводник» из меню
  3. Теперь выберите все таблицы (на правой стороне в деталях объекта)
  4. правой кнопкой мыши на любой из выбранных таблиц (справа)
  5. «таблица сценария как» -> «Создать Чтобы»
  6. «Файл» или «Буфер обмена»

Это создаст файл сценария, содержащий все выбранные определения схемы файла.

+1

Not адекватное решение IMAO, которое стоит здесь. –

9

Вы всегда можете просмотреть виды INFORMATION_SCHEMA, чтобы найти всю интересную информацию о таблицах и их столбцах.

Это не называется «описать» само по себе - но этот запрос покажет вам много информации:

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

Marc

2

Вот скрипт, я написал, что просто выводит каждую таблицу и их столбцы формат, как:

Столбцы таблицы

table1 cOLUMN1, column2 ... columnX

Сценарий:

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 
Смежные вопросы