Ana içeriğe atla

Kayıtlar

Sql etiketine sahip yayınlar gösteriliyor

Sql Check All Tables Data Size

When the sql server has large data size then we need to check which table has how much data row and data size. TO check all tables data size and row count in sql server we may use following sql query: SELECT     t.NAME AS TableName,     s.Name AS SchemaName,     p.rows AS RowCounts,     SUM(a.total_pages) * 8 AS TotalSpaceKB,     CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB,     SUM(a.used_pages) * 8 AS UsedSpaceKB,     CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB,     (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB,     CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB FROM     sys.tables t INNER JOIN        sys.indexes i ON t.OBJECT_ID = i.object_id INNER JOIN     sys.partitions p ON i.ob...

Running large .sql script via command line

Sometimes we need to run large sql script which has 1-10 gb size or something etc. then we won't be open this .sql file in sql, notepad, etc. In this case, we need to run this command without any problem in easiest way, we can use commandline sqlcmd command to run our sql commands. To do this operation, just follow few steps ;  - Click Windows + R  - type cmd and press enter to reach commandline  - use   sqlcmd - S [ servername ] - d [ databasename ] - i [ scriptfilename ]  command to run your file :) Thats all. In my scenario , I runned 8 GB .sql file with this method then it will completed successfuly without wasting memory or cpu while doing its job.

Sql Log Dosyası Boyutu Düşürme

Zamanla özellikle sık veri işleme yaptığımız veri tabanlarımızda log dosyaları oldukça büyük boyutlar kaplayabilir.Bu boyutları düşürmek için aşağıdaki sorguyu kullanabilir basit bir şekilde sql log dosyamızın boyutunu gb lardan , mb lara düşürebiliriz. USE VeriTabanıAdı select name,recovery_model_desc from sys.databases ALTER DATABASE VeriTabanıAdı SET RECOVERY simple DBCC SHRINKFILE (VeriTabanıAdı_Log , 1)

"MySql.Data.MySqlClient.MySqlException: Parameter ‘@rownum’ must be defined" Hatası ve Çözümü

Çalıştığım bir entegrsayon projesinde, mysql de çalışırken mysql ortamında hazırladığım query içerisinde değişken tanımı kullanmıştım ve mysql de sorgu sorunsuz çalışıyordu fakat .net üzerinde mysqlcommand a sorguyu ekleyip çalıştırmaya çalıştığımda aşağıdaki gibi bir hata ile karşılaştım. MySql.Data.MySqlClient.MySqlException: Parameter ‘@rownum’ must be defined. Biraz araştırma yaptıktan sonra .Net MySql connector  un 5.2 versiyonundan sonra bu özelliği desteklediğini ve connection string imize "Allow User Variables=True;" kısmının eklenmesi gerekdiği sonucuna ulaştım.Versiyon kontrolü ve connection string e küçük bir ekleme sonrası bu hatayı kolaylıkla aşabiliyor ve projeye devam edebiliyorsunuz :)

The type or namespace name 'Linq' does not exist in the namespace 'System.Data' (are you missing an assembly reference?) asp.net 4.0

Bu hata  asp.net 'de aspx sayfalarda linq to sql kodu yazmaya çalıştığınızda karşınıza çıkar çözüm çok basit aslında.Tek yapılması gereken web.config dosyasına girip aşağıdaki kalın olarak işaretlenmiş satırı eklemek. <system.web>  <compilation debug="true" targetFramework="4.0" defaultLanguage="c#">       <assemblies>         <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>         <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />         <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />         <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />         <add assembly="System.Web.DataVisualizatio...

Sql den xml e veri aktarımı(Sql For XML)

Sql de bazen tablo verilerimizi xml e dönüştürmek isteyebiliriz.Bunun için sql deki for xml syntax ını kullanabiliriz. Örnek olarak ürün tablomuz olsun ve içerisindeki kod ve isim alanlarını bir xml e aktarmak isteyelim.  Sorgu : SELECT UrunKodu,UrunAdi FROM Urunler FOR XML AUTO,Elements  Bize dönecek sonuç aşağıdaki gibi olacaktır :  <urunler><urunkodu>CS4390</urunkodu>   <urunadi>CS4390 Thermal Battaniye</urunadi> </urunler> <urunler>   <urunkodu>85563000</urunkodu>   <urunadi>Cinquantaquattro Lıght Canvas (Ayakkabı)</urunadi> </urunler> <urunler>   <urunkodu>RMJ003</urunkodu>   <urunadi>Barlow Short (Şort)</urunadi> </urunler> <urunler>   <urunkodu>CADIR-COLEMAN</urunkodu>   <urunadi>Coleman Sundome 3 Kişilik Çadır</urunadi> </urunler> <urunler>   <urun...

Sql de tablo'nun var olup olmadığını kontrol etmek

Sql Server da bazen belirli bir tablonun olup olmama durumuna göre işlem yapmamız gerekebilir.Aslen benim karşılaştığım bir temptable ı kontrol etme sorunuydu ve bulduktan sonra burada da paylaşmak istedim ama önce normal bir tabloyu nasıl kontrol ederiz onun hakkında bir örnek vereceğim sonrasında ise bir temp table nasıl kontrol edip duruma göre nasıl işlem yaparız ona bakacağız. sql de bir tablonun var olup olmadığını kontrol etmek : IF EXISTS (SELECT * FROM sys.objects --sistem tablolarının tutulduğu tabloya select çekiyoruz.                     WHERE object_id = OBJECT_ID(N'dbo.Personel') --Personel tablomuzu filtre olarak ekliyouz.                    AND type in (N'U')--Tablo ismini yazmıştık şimdide bir tip filtresi ekliyoruz.bu select çektiğimiz tablodaki tip karşılıklarını aşağıda detaylı olarak verdim. ) BEGIN PRINT 'tablo var :)' --buraya tablo var ise yapılacaklar ...

Sql Function Kullanımı

Sql Server da da aynı programlada olduğu gibi sık sık gerçekleştirdiğimiz işlemlerde kullanmamız gerekicek,bize yazdığımız sorgularda pratiklik sağlayacak fonksiyonlara ihtiyacımız olabilir.İşte tam burada   sql functionlar ile tanışmamız gerekiyor.İşin hikaye kısmını fazla uzatmadan hemen bir örnek üzerinden anlatıma geçmek istiyorum. Bu örneğimizde bir web sitemiz olduğunu düşünelim ve bu sitemizde artık hemen hemen her sitede kullanılan seo url ler kullanılıyor olsun.Ara ara sitemizdeki sayfalarımız için veri tabanımızdaki belirli verileride kullanarak standart url kalıpları oluşturmak isteyebiliriz.Fakat her url güncellemesine ihtiyacımız olduğunda kullanmamızın gerekeceği url için belirlediğimiz metni standart url formatında düzeltecek bir fonksiyona ihtiyacımız olacak.Bu fonksiyonu konuyu fazla uzatmadan kodu görelim artık diyenler için aşağıya yazıyorum hemen :) CREATE FUNCTION [MetaReplace] ( @MetaUrl NVARCHAR(1000) ) RETURNS NVARCHAR(1000) AS BEGIN SET ...

Sql Replace Fonksiyonu Kullanımı

Sql de bir sütun içerisindeki verideki bilgileri istediğimiz bir şekilde değiştirmek için kullanabileceğimiz ReplaceFonksiyonu kullanımı şu şekildedir : Kullanım Modeli : REPLACE(Degistirilmekistenenalan,'degismesiistenenalan','degismesiistenenalanindegisecegikelime') - - - - - - - - - - - - - - - - - - - - - 1.Örnek : burada örnek olarak bir kelime içerisindeki türkce karakter olan 'ü' harfini 'u' harfine çevirelim. kod : REPLACE('merhaba dünya','ü','u') çıktısı : merhaba dunya - - - - - - - - - - - - - - - - - - - - - 2.Örnek : Şimdi bir ürün tablosundaki ürün adındaki boşlukları '-' işareti ile değiştirelim. kod : tablomuzda 2 adet ürün kaydı olduğunu düşünelim UrunKodu UrunAdi -------- ------- çklta Ülker Çikolatalı Gofret icetea Limonlu ice tea SELECT UrunKodu,REPLACE(UrunAdi,' ','-') FROM Urunler çıktısı : UrunKodu UrunAdi -------- ------- çklta ...

sql saat,gün,ay getirme fonksiyonu

Sql de o anın saatini yada elimizdeki herhangi bir tarih formatındaki saati ,günü,ayı getirmek için aşşağıdaki "datepart(istenentarihbirimi,biriminalinacagitarih)" fonksiyonunu kullanabiliriz. --içinde bulunulan tarihin saatini getirir select DATEPART(Hour,getdate()) --içinde bulunulan tarihin gününü getirir select DATEPART(Day,getdate()) --içinde bulunulan tarihin ayını getirir select DATEPART(Month,getdate()) umarım faydalı olmuştur.

SQL SERVER da query ile Üzerinde Çalışılan Server Adını Öğrenme

Bazen çalışılan sql server ın server adını tam olarak öğrenmek istediğimiz ama öğrenemediğimiz durumlar olabiliyor.Böyle durumlarda aşşağıdaki kod ile bu bilgiyi edinebiliriz.(Örn kullanım alanı:server adında local yazıyor ama siz server adı olarak kullanabileceğinz adı istiyorsunuz(bilgisayar adı vs olabiliyor)) USE master GO SELECT SERVERPROPERTY(N'servername') umarım faydalı olmuştur.

SQL DATEADD() Fonksiyonu(Sql de tarihe ay,gün,yıl ekleme)

Kullanım Kalıbı : DATEADD (datepart , number , date ) . datepart ksımına month,year,day vs artırmak istediğimiz tarih birimini yazıyoruz. . number ksımına arttırmak istediğimiz miktarı yazıyoruz. . date kısmına da hangi tarih e ekleneceğini belirtiyoruz. Örnek olarak şu an ki tarihten 1 ay sonrasını görmek için : Şu anki tarih '10-1-2011' olsun(gün,ay,yıl) Sorgu : SELECT DATEADD(MONTH,+1,GETDATE()) Çıktı alacağımız tarih : '10-2-2011' şekinde olacaktır.

Stored Procedure ile Geriye Değer Döndürmek

Store Procedure ümüzü oluşturuyoruz.. CREATE PROCEDURE PersonelEkle ( @PersonelAdi NVARCHAR(50) ) AS BEGIN INSERT INTO Personel (PersonelAdi) VALUES(@PersonelAdi) Return SCOPE_IDENTITY() END //Şimdi c# Metodumuzu yazıyoruz. Public int InsertPersonel() { using (SqlConnection sconn = new SqlConnection("VeriTabanıBaglantiYolu")) { sconn.Open(); using (SqlCommand scom = new SqlCommand("PersonelEkle", sconn)) { //Komut Tipimizin Stored Procedure olucağını belirtiyoruz. scom.CommandType = CommandType.StoredProcedure; scom.Parameters.Add("@PersonelAdi", SqlDbType.NVarChar).Value = "Ali"; scom.Parameters.Add("@PersonelID", SqlDbType.Bit).Direction = ParameterDirection.ReturnValue; scom.ExecuteNonQuery(); //Oluşan personel ID si alınıyor. int personelID= Convert.ToInt32(scom.Parameters["@Sonuc"].Value); Return personelID; }//End using SqlCommand }//End using SqlConnection }//End Method Umarım Faydalı o...

Stored Procedure ' e Out parametresi Ekleme

Bir stored procedure yazarken eğer output parametre eklemek istersek output anahtar sözcüğünü kullanarak şu şekilde bunu kullanabiliriz. Örnek olarak bir ürün tablosuna ürün ekleyen bir procedure yazıcaz. procedure Adı : spUrunEkle bu procedure de @outProductID geriye ürünID si olarak bir değer döndürücektir bize çalıştıktan sonra. CREATE PROCEDURE spUrunEkle ( @urunKodu int, @urunAdi nvarchar(50) @outProductID int output--eklenecek ürünün ID si ) AS BEGIN INSERT INTO Urun (urunKodu,urunAdi) VALUES(@urunKodu,@urunAdi) SELECT @outProductID = Scope_Identity()--yeni eklenen ürünID si out parametresine atanıyor END Normalde ürün ekleyen bir stored procedure de direk değer geriye döndürülür output parametre olarak verilmez ama benim aklıma en basit bu geldiği için bir hello world yapmak istedim. :) Umarım Faydalı olmuştur.

Sql " GROUP BY " , "CAST" İşlemleri

"GROUP BY" : Sql de zaman zaman bazı alanlarımızı gruplayarak listelemek isteyebiliriz. Örneğin bir stok takip uygulamasında, birden çok depomuz var ve bu depolardaki toplam stok miktarlarını görmek istiyoruz..Bunun için şöyle bir sorgu yazabiliriz. Önce Bu Testi Yapabiliceğiniz tablo bilgilerini veriyorum : Tablo adımız : STOKLAR Alanları da : urunID,StokMiktari,StokDepo Oluşturduğumuz tablo için Sql Sorgusu : SELECT urunID,StokMiktari FROM STOKLAR WHERE StokDepo IN(1,2,3) bunun sonucunda her ürün için 3 adet satır dönücektir(herdepo stok bilgisi için ayrı satır) ve 3 depodaki stok miktarları ayrıca yazıcaktır.Fakat biz toplam stoğu görmek istiyoruz.3 tanesini topla çıkar yapmak zorunda değiliz deyil mi.. Onun içinde şöyle bir sorgu yazmalıyız : SELECT urunID,SUM(StokMiktari) FROM STOKLAR WHERE StokDepo IN(1,2,3) GROUP BY stokID Şeklinde yazarsak her ürün ürün için 3 deponun toplam stok miktarını görmüş oluruz. " CAST " : Sql de bazen iste...

Sql Hatası : " The data types ntext and varchar are incompatible in the equal to operator. "

bu sabah böyle bir hata ile karşılaştım ilk defa karşıma çıktı :) Mesela "SELECT * FROM urunler WHERE Aciklama = 'HP NOTEBOOK' " şeklinde bir arama yaptığımızı düşünelim.Eğer "Aciklama" ntext bir tanım ise veri tabanında bu sorgu şu hatayı veriyor : "The data types ntext and varchar are incompatible in the equal to operator." Çözüm Basit :) arama işlemini "LIKE" ile yapıcaksınız :) Bu hatayı zaten kolayca çözüp giderebilirsiniz ama gördüğü her hatayı direk google a yazan arkadaşlar için bir kaynak olsun dedim :D Yeni Sorgu : SELECT * FROM urunler WHERE Aciklama LIKE 'HP NOTEBOOK' Umarım faydalı olmuştur.