2009-08-23 30 views
10

Kötü bir geliştiriciden bir tıknaz ve korkunç belgelenmemiş bir siteyi miras aldım ve veritabanı şemasına bakmaya çalışıyorum. Ne yazık ki web barındırma, şimdiye kadar uğraştığım en kötü durumdur ve db şemasını görüntülemek veya tabloları dışa aktarmak için hiçbir kontrol paneli yeteneğine sahip değildir.SQL Server şemasını bir SQL sorgusuyla alın?

Bir SQL sorgusu üzerinden şemaya bakabilmem için herhangi bir yolu var mı (bu ASP + SQL Server ile olurdu)? Son hedefim hangi tabloların var olduğunu görmek, muhtemelen hayati tabloların bir SQL dökümü almak ve sonra her şeyi doğru şekilde yeniden yaratmak. böylece

SELECT * FROM INFORMATION_SCHEMA.TABLES 
SELECT * FROM INFORMATION_SCHEMA.VIEWS 

... ve:

cevap

19

INFORMATION_SCHEMA şema başlamak için iyi bir yerdir.

Ayrıca, SQL Server'da meta verilere ulaşmak için bir API olan SMO'u kullanarak da bir göz atmak isteyebilirsiniz.

+0

Teşekkür ederim, bu tam olarak aradığım şey. – Jeff

+2

'SELECT * FROM INFORMATION_SCHEMA.COLUMNS' çok kullanışlıdır. Tablo adıyla birlikte sütunların ayrıntılarını sunar. – KSK

2

Ben

SHOW TABLES; 
DESCRIBE table_name; 
SHOW TABLE STATUS from table_name; 

gibi basit sorgular MS SQL geçerli olup olmadığını emin değilim. Ayrıca yararlı olabilirler

+1

Onlar değil :) Başka bir yol var: SELECT * FROM sys.objects WHERE type = 'U' ve benzeri, ama MS SQL'de "SHOW TABLES", ne yazık ki. –

0

SchemaSpy http://schemaspy.sourceforge.net/ varolan veritabanlarını analiz etmek için harika bir araçtır. Tablo ve kısıtlamaların html listelerinin yanı sıra ilişkilerin grafiksel bir temsilini de üretir.