MSSQL İç İçe Sorgular (Select In Select)

Bir tabloya select sorgusunu atarken gelecek sonuçlar içerisinde o tabloyla ilişkili belli alanların da gelmesini isteyebilirsiniz. Elbette bunun için inner join, cross join, left ve right join leri de kullanabilirsiniz. Ancak kimi durumlarda bu sorgular yeterince karmaşık hale gelebilir veya ihtiyacınızı join işlemlerinin hiçbiri göremiyor olabilir. Bu gibi durumlarda bu uygulamaya ihtiyaç duyabilirsiniz. İşte bu tip durumlarda DBA’lar tarafından (Database Admin) çok da tavsiye edilmeyen, ancak developerlar tarafından başvurulan yöntemlerden birisi de iç içe select …

MSSQL – Cursor Kullanımı

MSSQL içerisinde bir çoğumuzun bildiği üzere çok sayıda döngü bulunmamakta. Bu yüzden genellikle WHILE döngüsüne hapsolup kalabiliyoruz. Ancak kimi zaman kayıtlarda işlem yaparken birden fazla alana ihtiyaç duyabiliyor ve o alanları döngünün içerisinde kullanmak isteyebiliyoruz. Aslını isterseniz CURSOR metodu da tam olarak burada imdadımıza yetişiyor. Kendisi WHILE döngüsü ile birlikte kullanılan bir yöntem aslında. Tek farkı da, WHILE ile tek başına rakam içerisinde dönerken CURSOR ile birlikte kullanımında bellekte o döngü sırasına birden fazla değişken …

MSSQL Tüm Tabloları Silmek

Kimi zaman veritabanındaki tüm tabloları silip yerine yeni script içerisindeki tabloları eklemek istersiniz. Tek tek tabloları drop table yaparak silmek de bir seçenek elbette. Ancak çoğu zaman gerçekten eziyet haline gelebiliyor bu durum. Hele de çok sayıda tablonuz var ise. İşte bu gibi durumlar için aşağıdaki kod kısaca işinizi çözecektir. Kısaca şöyle özetleyeyim kodu isterseniz; Bu blokta sql sizin için tüm ilişki şemasını aşağıdaki şekilde bir araya topluyor. Tabii ki ne kadar ilişki var ise …

MSSQL – Ayın Son Günü, Ayın İlk Günü, Bir Sonraki Ayın, Bir Sonraki Ayın İlk ve Son Günleri

Merhaba Arkadaşlar, Çokça işimize yarayabilecek ayın ilk, son, bir sonraki, ilk, bir sonraki son günleri gibi (kendi içerisinde başlıklar halinde) script’leri aşağıda paylaşıyorum… Bir Önceki Ayın İlk Günü SQL Sorgusu: SELECT DATEADD(mm, DATEDIFF(mm, 0, GETDATE()) – 1, 0) Bir Önceki Ayın Son Günü SQL Sorgusu: SELECT DATEADD(DAY, -(DAY(GETDATE())), GETDATE()) İçinde Bulunduğumuz Ayın İlk Günü SQL Sorgusu: SELECT DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0) İçinde Bulunduğumuz Ayın Son Günü SQL Sorgusu: SELECT DATEADD (dd, -1, DATEADD(mm, DATEDIFF(mm, …

MSSQL – Kelimelerin İlk Harflerini Büyütmek

Selam Arkadaşlar, Bu konuya daha önce c# alanında değinmiştim ve bir fonksiyon yayınlamıştım. Ancak buradaki olay biraz daha farklı. Bu sefer olay tamamen MSSQL içerisinde cereyan etmekte. Olay şu ya da bu biçimde MSSQL içerisinde bir fonksiyon olarak tanımlanmakta ve bu kullanılarak yapılmaktadır. Hatta yazını en altında bir update örneği de paylaşıyor olacağım. Şimdi gelelim kodumuza; Şimdi bu kodu bir sql fonksiyonu olarak oluşturalım; ve son olarak da bu fonksiyonu bir örnek ile çağırarak sonucu …

C# Entity Framework Transaction Kullanımı

C# ‘ta EntityFramework (EF) ile Transaction blokları Transaction’lar yazılımcıların belli bir noktadan sonra olmazsa olmazları halinde yer alır. Peki nedir bu transaction kavramı? Bir tabloda işlem yapıyor olun. Bu işlem ister insert, ister update, ister ise delete işlemi olsun. Bu noktada eğer yapacağınız işlem farklı bir veya bir kaç noktayı etkileyecek ise ve bu noktaların bir tanesinde dahi hata almanız durumunda yapılan tüm işlemleri (o esnada) geri almak istiyorsanız kesinlikle ihtiyaç duyacağınız bir metoddur Transaction …

NoLock ve With(Nolock) Arasındaki Fark

NoLock Nedir? Ne işe yarar ve de tabii ki NoLock ve With(Nolock) Arasındaki Fark? Aslında her ne kadar Microsoft 2016 ve sonrasıyla birlikte bu farkı ortadan kaldıracağını açıklamış olsa bile şu an 2017 dahil with(nolock) şeklinde kullanım devam etmektedir. Peki Nedir With(Nolock)? Ne İşe Yarar? Bilindiğini varsaydığım üzere (ki daha sonra makalesini de yazacağım) Sql’de Transaction diye bir kavram var. Yani siz açmış olduğunuz bir transaction ile yine kendiniz o transaction’ı bitirene kadar ilgili tabloya …

The database ‘DATABASE_ADI’ does not exist. Supply a valid database name. To see available databases, use sys.databases.

Bu hatayı alıyorsanız veritabanını ilk önce pasife almamız ve yetkileriyle bir ufak oynama yapmamız gerekiyor. Sonrasında elbette son satırla tüm yetki ve user’ları aktif ediyoruz korkmayın 🙂 use master ALTER DATABASE ESKI_DATABASE_ADI SET SINGLE_USER WITH ROLLBACK IMMEDIATE ALTER DATABASE ESKI_DATABASE_ADI MODIFY NAME = [YENI_DATABASE_ADI] ALTER DATABASE YENI_DATABASE_ADI SET MULTI_USER