2009-02-14 46 views
15

Tôi có 20 bảng hoặc nhiều hơn trong cơ sở dữ liệu RentalEase và tôi muốn in chúng ra (vật lý) để tôi có thể xem chúng dễ dàng hơn. Tôi không quan tâm quá nhiều về dữ liệu trong đó, chỉ là cấu trúc của họ. Tôi có thể làm cái này như thế nào?Cấu trúc/lược đồ của Bảng In

Đó là máy chủ SQL Express và tôi đang sử dụng Microsoft SQL Server Management Studio Express để quản lý nó. Tôi nhớ lại khi tôi đang sử dụng MySQL và PHP tôi có thể sử dụng một DESCRIBE để in nó ra nhưng tôi không nhớ làm thế nào tôi đã làm nó. Có vẻ như không phải là một mô tả cho SQL Server

Trả lời

28

thử:

sp_help <table_name> 
+0

tôi sử dụng này hàng ngày, nhưng bạn có thể thả EXEC – banjollity

+4

Không công bằng! Bạn đã chỉnh sửa nó ... – banjollity

+3

Tôi đã bối rối về lý do tại sao điều này không hoạt động cho đến khi tôi nhận ra rằng '' cần phải là '' dbname.schema.tablename'' vì vậy một cái gì đó như ''mydb.dbo.mytable'' –

4

Bạn có thể sử dụng cơ sở dữ liệu Schema Sơ đồ thiết kế cụ. Chỉ cần thả tất cả các bảng đó, và bạn sẽ nhận được sơ đồ của cơ sở dữ liệu bạn bao gồm tất cả các phím

6

Trong Management Studio,

  1. Nhấn vào dấu "+" bên cạnh cơ sở dữ liệu của bạn mở rộng các đối tượng bên dưới nó và click vào "bàn"
  2. mở giao diện chi tiết bàn bằng cách chọn "view" -> "object Explorer Details" từ menu
  3. Bây giờ chọn tất cả các bảng (ở phía bên tay phải trong các chi tiết đối tượng)
  4. nhấp chuột phải vào bất kỳ Bảng đã chọn nào (ở phía bên tay phải)
  5. "Script bảng As" -> "Create To"
  6. "File" hoặc "Clipboard"

này sẽ tạo ra một tập tin script chứa tất cả các định nghĩa lược đồ tập tin được chọn.

+1

Không một giải pháp thích hợp để IMAO đáng được liệt kê ở đây. –

9

Bạn luôn có thể kiểm tra chế độ xem INFORMATION_SCHEMA để tìm tất cả thông tin thú vị về bảng và cột của chúng.

Nó không gọi là "mô tả" cho mỗi gia nhập - nhưng truy vấn này sẽ cho bạn thấy rất nhiều thông tin:

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

Marc

2

Dưới đây là một kịch bản tôi đã viết mà chỉ đơn giản liệt kê mỗi bảng và cột tương ứng trong một định dạng như:

Bảng Cột

table1 column1, column2 ... columnX

012.

Kịch bản là:

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 
Các vấn đề liên quan