Структура / схема печатного стола - PullRequest
18 голосов
/ 15 февраля 2009

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

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

Ответы [ 5 ]

32 голосов
/ 15 февраля 2009

попробуй:

sp_help <table_name>
12 голосов
/ 15 февраля 2009

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

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

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

Марк

7 голосов
/ 15 февраля 2009

В Management Studio,

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

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

3 голосов
/ 15 февраля 2009

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

2 голосов
/ 15 октября 2013

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

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

таблица1 столбец1, столбец2 ... столбецX

Сценарий:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...