Mssql İle Tablolarda Kolon İsmi Arama
Veritabanı geliştirme sürecinde zaman zaman yüzlerce tablo ve binlerce kolon arasında kaybolmak mümkündür. Özellikle büyük ölçekli projelerde, daha önce oluşturulmuş bir kolonun hangi tabloda yer aldığını tespit etmek önemli bir ihtiyaç haline gelir. MSSQL (Microsoft SQL Server) kullanıcıları için bu durum oldukça yaygındır ve çözümü de oldukça pratiktir.
Bu yazıda, SQL Server Management Studio (SSMS) üzerinden basit sorgular kullanarak veritabanındaki tüm tablolar arasında belirli bir kolon adını nasıl arayabileceğinizi adım adım göstereceğim. Böylece, kod yazarken ihtiyaç duyduğunuz bir alanın nerede tanımlandığını saniyeler içinde öğrenebileceksiniz.
Ayrıca, bu yöntem sadece manuel aramaları hızlandırmakla kalmaz; aynı zamanda bakım ve refactoring işlemleri sırasında da büyük kolaylık sağlar. Projenizdeki kolon isimlerini analiz etmek, tekrarlayan yapıları tespit etmek ve tutarlılığı sağlamak için de oldukça etkilidir.
Hazırsanız, MSSQL’de kolon arama işlemlerini kolaylaştıracak bu pratik yöntemleri birlikte keşfedelim!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | /* <Author> : Halil Şahin <Created Date>: 04.04.2025 <Description> : Bu kod parçası, belirli bir sütun adını içeren tabloları ve şemaları bulmak ve bu tablolar için genel SELECT sorguları oluşturmak amacıyla yazılmıştır. Belirtilen sütun adını içeren tüm tabloları ve o sütunların bulunduğu şemaları listeler. Aynı zamanda, her tablo için basit bir 'SELECT *' sorgusu oluşturur. Kullanıcı, sorgulamak istediği sütun adını @ColumnName parametresi aracılığıyla belirtebilir. */ DECLARE @ColumnName NVARCHAR='dosya' -- Aranacak sütun adı, burada 'dosya' olarak belirlenmiştir. -- Aşağıdaki sorgu, veritabanındaki tüm tablo, sütun ve şemaları sıralayarak işlem yapar. SELECT s.name AS [SchemeName], -- Şema adı t.name AS [TableName], -- Tablo adı c.name AS [ColumnName], -- Sütun adı 'SELECT * FROM ' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name) + ';' AS SelectSorgusu -- Tablo için hazırlanan SELECT sorgusu FROM sys.tables AS t -- Veritabanındaki tüm tablolar INNER JOIN sys.columns AS c ON t.object_id = c.object_id -- Her tablonun sütunları INNER JOIN sys.schemas AS s ON t.schema_id = s.schema_id -- Tabloların bağlı olduğu şemalar WHERE c.name LIKE '%'+@ColumnName+'%' -- Sütun adı, belirtilen metni içeren sütunları filtreler ORDER BY [SchemeName], [TableName] -- Sonuçlar şema adına ve tablo adına göre sıralanır. |
