Skip to main content

Command Palette

Search for a command to run...

SQL Server'da View Değişiklikleri Neden Hafife Alınmamalı?

Published
2 min read
S

I’m a passionate software engineer specializing in SQL change management, database security, and DevOps automation. With over 17 years of experience in the banking sector, I focus on building tools and processes that make database deployments safer, more auditable, and automated.

As the creator of SQL Change Guard, I develop solutions that use risk scoring and AI-powered code analysis to detect dangerous SQL scripts before they reach production. I’m dedicated to helping teams minimize downtime and data loss through smarter change governance.

When I’m not coding, I enjoy sharing insights about secure development practices, WPF desktop applications, and integrating modern CI/CD pipelines.

Feel free to connect or reach out at info@sqlchangeguard.com

View'lar "sadece bir sorgu" gibi görünür. Değiştirmek kolay. Risk düşük gibi hissettiriyor. Ama view'lara dayanan onlarca rapor, uygulama ekranı ve başka view varsa bu his yanıltıcı.

View Değişikliğinin Gizli Etki Alanı Bir view değiştirildi. Ne etkilendi?

Bu view'ı kullanan raporlar Bu view'ı kullanan stored procedure'ler Bu view'ın üzerine kurulu başka view'lar (nested view) Bu view'a bağlı uygulama ekranları Bu view'ı kullanan SSIS paketleri

Bunların tamamını bilmeden yapılan bir view değişikliği beklenmedik yerlerde kırılmalara yol açar.

View Bağımlılıklarını Tespit Etmek sql-- Bir view'a bağımlı tüm nesneleri listele SELECT referencing_schema_name AS Sema, referencing_entity_name AS NesneAdi, referencing_class_desc AS NesneTipi FROM sys.dm_sql_referencing_entities('dbo.vw_SatisOzeti', 'OBJECT') ORDER BY referencing_class_desc, referencing_entity_name; sql-- View'ın bağımlı olduğu nesneleri listele SELECT referenced_schema_name AS Sema, referenced_entity_name AS NesneAdi, referenced_class_desc AS NesneTipi FROM sys.dm_sql_referenced_entities('dbo.vw_SatisOzeti', 'OBJECT') ORDER BY referenced_class_desc, referenced_entity_name;

Yaygın View Değişikliği Senaryoları Kolon eklenmesi Görece güvenli. Ama view'ı SELECT * ile kullanan kodlar beklenmedik kolon alabilir. Kolon kaldırılması Yüksek riskli. View'ı kullanan her nesne bu kolona erişemez hale gelir. Sessiz hata ya da açık hata olabilir. Kolon sırası değiştirilmesi SELECT * kullanan kodlarda veriler yanlış eşleşebilir. Tespit etmek çok zor. JOIN veya WHERE mantığı değiştirilmesi Dönen veri seti değişir. Doğru sonuç verip vermediği bağımlı nesneler test edilmeden bilinemez.

Indexed View Değişikliği Indexed view üzerinde index varsa değişiklik daha da kritik. sql-- Indexed view'ları listele SELECT v.name AS ViewAdi, i.name AS IndexAdi, i.type_desc AS IndexTipi FROM sys.views v JOIN sys.indexes i ON v.object_id = i.object_id WHERE i.index_id > 0 ORDER BY v.name; Indexed view değiştirilmek istendiğinde index önce düşürülmeli, view güncellenmeli, index yeniden oluşturulmalı. Bu üç adımlı süreç değişiklik talebinde açıkça belirtilmeli.

View Değişikliklerini Değişiklik Sürecine Dahil Etmek View değişikliği talebinde şu bilgiler zorunlu olmalı: Hangi view değişiyor? Neden değişiyor? Bağımlılık analizi yapıldı mı, sonuçlar neler? Test ortamında bağımlı nesneler test edildi mi? Bu bilgiler olmadan view değişikliği onaylanmamalı.

Sonuç View'lar görünmez bağımlılık ağları oluşturur. Değişiklik yönetimi kapsamında ele alınmadığında küçük bir view güncellemesi onlarca nesneyi etkileyebilir. Bağımlılık analizi bu riski yönetilebilir kılar. Detaylı bilgi için: sqlchangeguard.com

More from this blog

S

SQL Change Guard

81 posts