2016-04-13 19 views
4

Bir alanın hangi tabloda bulunduğunu bulmanın en hızlı yolu nedir? Yeni bir şirkette yeni başladım ve henüz DB'nin şemasına aşina değilim. Sık sık aramak zorunda olduğum bir metrik veya boyuta sahibim ve çok büyük bir DB'ye sahip oldukları için çok zaman alıcı görünüyor.Veritabanındaki alanı araştır

Bunun belirsiz bir soru olduğunu ve en iyi yanıtın olmadığını biliyorum, ancak insanların yıllar boyunca öğrendiğim en iyi uygulamaları, ipuçlarını ve püf noktalarını arıyorum.

+0

'information_schema.columns * seçmek nerede sütun_ismi = Bu gibi 'Sütun name'' –

+1

http://stackoverflow.com/questions/4849652/find-all-tables-containing-column-with-specified-name – Chris

cevap

4

Bunun için sys.columns kullanabilirsiniz:

SELECT 
    OBJECT_NAME(c.object_id) 
FROM sys.columns c 
WHERE c.name = <column_name> 
1

Bir arazide Arıyorum zaman normalde aşağıdaki sorguyu kullanın.

SELECT * FROM information_schema.COLUMNS c WHERE c.COLUMN_NAME LIKE 'search_field%' 

Seçtiğiniz DB'ye sahip olduğunuzdan emin olun. Ardından, aradığınız tabloyu bulduğunuzda, bir DB şeması oluşturabilir ve o tabloya nasıl katılacağınızı görmek için ilgili alanları gösterebilirsiniz.

+6

[INFORMATION_SCHEMA görünümlerine karşı dava] (http://sqlblog.com/blogs/aaron_bertrand/archive/2011/11/03/the-case-against-information-schema-views.aspx) –

+1

Hey Felix, bu büyük makale. Kısacası, Jessica ve prdp'nin cevabı ile ilgili bir sorun var mı? –

+2

@Victor Sadece bir sütunun kullanıldığı tabloları arıyorsanız, bu tamamdır. Ancak, bazı ek bilgilere ihtiyacınız varsa, INFORATION_SCHEMA, bunların tümünü sağlamaz. –

İlgili konular