arşiv

‘SQL Hakkında’ kategorisi için arşiv

Get running job name from sysprocesses

Cuma, 06 Tem 2018 yorum yok

Get the substring of the running job from sysprocess .. have filtered out generic refresher ETC

select substring(program_name,55,7) ‘to search’
from master..sysprocesses
where program_name like ‘%agent%’ and program_name not like ‘%DatabaseMail – SQLAGENT -%’
and program_name not in (‘SQLAgent – Alert Engine’,’SQLAgent – Generic Refresher’,’SQLAgent – Email Logger’,’SQLAgent – Job invocation engine’,’SQLAgent – Job Manager’)

output will be similar to below

Output :

to search
2FE3386
A68D437
3253286

Get the job details from MSDB database by using the results you got from above query and replace them in where clause

select *
from msdb..sysjobs
where job_id like ‘%A68D437%’

OR

if you have more than one job running replace below job_id %strings%

select *
from msdb..sysjobs
where job_id like ‘%A68D437%’ or job_id like ‘%4E742EB%’ or job_id like ‘%FAEDF18%’

 

Categories: SQL Hakkında Tags:

Sql Takvim

Pazartesi, 19 Mar 2018 yorum yok
 create procedure spCalendar
     --draw a calendar as a result set. you can specify the month if you wwant
     @Date datetime=null--any date within the month that you want to calendarise.
     /*
     For Novermber 2013 it gives...
      
     Mon  Tue  Wed  Thu  Fri  Sat  Sun
     ---- ---- ---- ---- ---- ---- ----
                         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   27   28   29   30
      
      
     eg. spCalendar '1 Jan 2006'
     Execute spCalendar '1 sep 2013'
     Execute spCalendar '1 nov 2013'
     Execute spCalendar '28 feb 2008'
     Execute spCalendar '1 mar 1949'
     Execute spCalendar '10 jul 2020'
      
     */
     as
     Set nocount on
     --nail down the start of the week
     Declare @MonthLength int --number of days in the month
     Declare @MonthStartDW int --the day of the week that the month starts on
     --if no date is specified, then use the current date
     Select @Date='01 '+substring(convert(char(11),coalesce(@date,GetDate()),113),4,8)
     --get the number of days in the month and the day of the week that the month starts on
     Select @MonthLength=datediff(day,convert(char(11),@Date,113),convert(char(11),DateAdd(month,1,@Date),113)),
     @MonthStartDW=((Datepart(dw,@date)+@@DateFirst-3) % 7)+1
      
     Select
     [Mon]=max(case when day=1 and monthdate between 1 and @MonthLength then convert(char(2),monthdate) else '' end),
     [Tue]=max(case when day=2 and monthdate between 1 and @MonthLength then convert(char(2),monthdate) else '' end),
     [Wed]=max(case when day=3 and monthdate between 1 and @MonthLength then convert(char(2),monthdate) else '' end),
     [Thu]=max(case when day=4 and monthdate between 1 and @MonthLength then convert(char(2),monthdate) else '' end),
     [Fri]=max(case when day=5 and monthdate between 1 and @MonthLength then convert(char(2),monthdate) else '' end),
     [Sat]=max(case when day=6 and monthdate between 1 and @MonthLength then convert(char(2),monthdate) else '' end),
     [Sun]=max(case when day=7 and monthdate between 1 and @MonthLength then convert(char(2),monthdate) else '' end)
     from
     (--roll out the day number and week number so you can then do a pivot table of the results
     Select [day]=DayNo.Number, [week]=Weekno.number,
     [monthDate]=(DayNo.Number + ((Weekno.number-1)*7))-@MonthStartDW
     from (VALUES (1),(2),(3),(4),(5),(6),(7)) AS DayNo(number)
     cross join 
      (VALUES (1),(2),(3),(4),(5),(6)) AS Weekno(number)
      
     )f
     group by [week]--so that each week is on a different row
     having max(case when day=1 and monthdate between 1 and @MonthLength then monthdate else 0 end)>0
     or (week=1 and sum(MonthDate)>-21)
     --take out any weeks on the end without a valid day in them!

 

Kaynak: https://www.red-gate.com/simple-talk/sql/learn-sql-server/robyn-pages-sql-server-datetime-workbench/

Categories: SQL Hakkında Tags: ,

Sql XML PATH

Cuma, 19 Oca 2018 yorum yok

I had a similar issue when I was trying to join two tables with one-to-many relationships. In SQL 2005 I found that XML PATH method can handle the concatenation of the rows very easily.

If there is a table called STUDENTS

SubjectID       StudentName
----------      -------------
1               Mary
1               John
1               Sam
2               Alaina
2               Edward

Result I expected was:

SubjectID       StudentName
----------      -------------
1               Mary, John, Sam
2               Alaina, Edward

I used the following T-SQL:

Select Main.SubjectID,
       Left(Main.Students,Len(Main.Students)-1) As "Students"
From
    (
        Select distinct ST2.SubjectID, 
            (
                Select ST1.StudentName + ',' AS [text()]
                From dbo.Students ST1
                Where ST1.SubjectID = ST2.SubjectID
                ORDER BY ST1.SubjectID
                For XML PATH ('')
            ) [Students]
        From dbo.Students ST2
    ) [Main]

You can do the same thing in a more compact way if you can concat the commas at the beginning and use substring to skip the first one so you don't need to do a subquery:

 

Select distinct ST2.SubjectID, 
    substring(
        (
            Select ','+ST1.StudentName  AS [text()]
            From dbo.Students ST1
            Where ST1.SubjectID = ST2.SubjectID
            ORDER BY ST1.SubjectID
            For XML PATH ('')
        ), 2, 1000) [Students]
From dbo.Students ST2

https://stackoverflow.com/questions/194852/concatenate-many-rows-into-a-single-text-string

Categories: SQL Hakkında Tags: ,

Yazdığınız script’i kaydetmeden sildiniz mi?

Pazartesi, 21 Ağu 2017 yorum yok

Yazdığınız script’i kaydetmeden sildiniz mi?
Management strudio’nu hata verip kapandı ve satırlarca sql’inizi recover edemiyor musunuz?
Temp dosyalarda bulamadınız mı?

Script’inizi bir defa çalıştırdıysanız üzülmeyin, hala kurtarabilirsiniz smiley
Nasıl mı?

Şöyle;

use [DBName]
go

select	execquery.last_execution_time as [Date Time], execsql.text as [Script] 
from	sys.dm_exec_query_stats as execquery
			CROSS APPLY sys.dm_exec_sql_text(execquery.sql_handle) AS execsql
where	convert(date,execquery.last_execution_time)='20170808'
order by execquery.last_execution_time

 

Categories: SQL Hakkında Tags: ,

Veritabanı Bilgi Havuzu

Salı, 01 Ağu 2017 yorum yok

Tüm veri tabanları hakkında başvuru kaynağı için kullanılır.

http://www.veritabani.gen.tr/

Categories: bestURL, SQL Hakkında Tags: ,

SQL Server Locking Hints

Perşembe, 13 Nis 2017 yorum yok

Merhabalar,

Sql server da yaptığımız bazı işlemler sırasında kullandığımız tabloları kilitlememiz gerekebilir. Yada kilitli bir tablodan kilidin açılmasını beklemeden sorgu çekmek isteyebiliriz. Bu gibi durumlar için kullanabileceğimiz sql server locking hint leri aşağıdaki gibidir;

HOLDLOCK = Kilitlenme işleminin transaction bitimine kadar sürmesini sağlar. Tablock gibi bazı ifadeler sadece statement bazında kilitleme yapmaktadır. Bunların transaction bazında kilitleme yapması isteniyorsa HOLDLOCK ifadesiyle beraber kullanılması gerekmektedir. HOLDLOCK, SERIALIZABLE ile aynı işi yapmaktadır.

 

NOLOCK = Kilitli bir tablodan kilidin açılmasını beklemeden kayıt çekmeye yarar. Kirli kayıt (dirty read) alınması mümkündür. Kullanımı Select * from TableName WITH (NOLOCK) şeklindedir. NOLOCK, READUNCOMMITTED ile aynı işi yapmaktadır.

PAGELOCK =  Sayfa bazında kilitleme yapmak için kullanılır.

READCOMMITTED = Kilitli tabloları kullanabilmek için kilidinin açılmasını bekler. SQL Server default udur.

READUNCOMMITTED = NoLock ile aynı işi yapar.

ROWLOCK = Kayıt bazında kilitleme yapmak için kullanılır.

SERIALIZABLE = HoldLock ile aynı işi yapar.

TABLOCK = Tablock ile lock edilen tablolarda read işlemi yapılabilirken insert ve update işlemi yapılamamaktadır. Ayrıca transaction boyutunda çalışabilmesi için holdlock ifadesi ile beraber kullanılması gerekmektedir.

TABLOCKX = Tablockx in tablock dan farkı read işleminide izin vermemesidir. Ayrıca transaction bazında çalışabilmekte dolayısıyla ekstradan holdlock ifadesine gerek kalmamaktadır.

UPDLOCK = Updlock ile locklanmış tablo larda select ve insert işlemleri yapılabilirken, update işlemi yapılamamaktadır. Statement ve transaction bazında çalışır. Transaction bazında çalışması için ayrıca HOLDLOCK ifadesine gerek yoktur.

XLOCK = Tablockx gibidir. Farkı statement da ki bütün işlemlerin bitmesini bekler. En kapsamlı lock işlemidir.

Sistemde bulunan kilitli tablolar EXEC sp_lock komutuyla görüntülenebilir.

Kaynak: http://www.caglarozenc.com/ms-sql-server/sql-server-locking-hints.html

Categories: SQL Hakkında Tags: ,

SQL Transactions

Çarşamba, 29 Mar 2017 yorum yok
TRANSACTIONS
 
Transaction’lar, aynı anda birden çok işlemin yapıldığı durumlarda, bütünü oluşturan parçalardan en az birinde hata meydana gelirse bütün işlemleri geriye almamızı sağlayan ifadelerdir.
 
Transaction ifadelerini en yaygın olarak 2 yolla oluşturmak mümkündür: Bunlardan ilki, Auto Commit Transaction; ikincisi ise Explicit Transaction’dır.
 
 Auto Commit Transaction
·         Hiçbir transaction modu tayin edilmediyse SQL Server bu modda çalışır.
·         Auto commit modunda her bir batch bir transaction bloğu olarak ele alınır.
·         Batch içerisinde bir sorun olursa da, SQL Server otomatik olarak bütün batch’i geri alır yani rollback eder.
·         INSERT,UPDATE,DELETE gibi diğer komutlardan ayrı olarak gönderilen ifadeler SQL Server tarafından otomatik olarak transaction içerisinde paketlenir. Bu tek ifadeli transaction’lar, ifade başarılı olduğunda otomatik olarak commit edilir(onaylanır) ya da runtime hatası neticesinde otomatik olarak rollback edilir(geri alınır).
 
Explicit Transaction
·         Kullanıcının TCL komutları (begin, commit,rollback) kullanarak başlattığı transaction’lardır.TCL, T-SQL'in alt kümesidir.
 
            
 

·         Batch’lerde runtime hatası olduğunda, örneğin; 2 tabloya aynı anda veri girişi yapmak istediğimizi düşünelim. Bir tanesine giriş oldu fakat sonrasında runtime hatası verdi ve ikincisine giriş olmadı.
 
   insert into … values …
   insert into … values …
   GO
   
   Bu durumda yazdığımız iki insert ifadelerini kullanıcı tanımlı transaction’ın içine sokarak bu olumsuzluktan kurtulabiliriz.  (İlgili örneğe en aşağıda ulaşabilirsiniz).
 
BEGIN TRANSACTION
·         Transaction işlemini başlatır. İşlem başarılıysa bitirmek için COMMIT TRANSACTION / COMMIT TRAN, başarısızlık durumunda bitirmek için de ROLLBACK TRANSACTION / ROLLBACK TRAN kullanılır.
·         İç içe transaction’larda eğer dış kısımdaki transaction rollback olduysa (geri alındıysa) içteki transaction da işlem görmüşse bile rollback edilir.
·         Transaction’lar COMMIT TRANSACTION ya da ROLLBACK TRANSACTION görünceye kadar devam eder ya da başlangıçtaki bağlantı kesilene kadar yani SQL Server otomatik olarak transaction’ı rollback edene kadar sürer.
 
COMMIT TRANSACTION
Başarılı olan transaciton’ı veritabanına kaydeder.
 
ROLLBACK TRANSACTION
·         Başarısız bir transaction’ın sonunda ROLLBACK komutunu kullanırız.
·         Transaction sırasında meydana gelen değişiklikleri geri almada kullanılır. Örneğin, insert, delete, update yapılan satırlar ya da create edilmiş objeler gibi.
·         CATCH bloğu içerisinde kullanılabilir.
·         Geri almadan önce (rollback), XACT_STATE fonksiyonunu kullanarak transaction’ın durumunu öğrenebiliriz. Bu CATCH bloğu içerisindeki hatalardan kaçınmamızı sağlar.
 
XACT_STATE Sonucu   Tanımı
0              Aktif kullanıcı transaction’ı yok.
1              Aktif, yürütülmekte olan transaction mevcut
                   -1              Aktif kullanıcı transaction mevcut ama hatalı. Transaction sadece geri alınabilir.
 
XACT_ABORT
Hata meydana geldiğinde SQL otomatik olarak geri alma işlemi yapmaz. Geri almak için ROLLBACK ifadesi kullanılır ya da XACT_ABORT devreye sokulur. XACT_ABORT ifadesi SQL Server runtime hatası verdiğinde yürütülmekte olan transaction’ın otomatik olarak geri alınmasını sağlar.
Default olarak XACT_ABORT kapalıdır. Bunu ayarlamak için SET komutu kullanılır.
 
       
 
 
Batch’lerden Oluşan Transaction
 
Transaction Örneği:
 
BEGIN TRY
   BEGIN TRANSACTION
      INSERT INTO Siparisler (musteriID, personelID, siparisTarihi) VALUES (1,1,’2015-08-14’);
      INSERT INTO SiparisDetay (siparisID, urunID, birimfiyat, adet) VALUES (2,4,50,150);
   COMMIT TRANSACTION;
END TRY
BEGIN CATCH
   SELECT ERROR_NUMBER(), ERROR_MESSAGE();
ROLLBACK TRANSACTION;
END CATCH;
 
Burada TRY bloğu içinde, INSERT ifadesi BEGIN TRAN ve COMMIT TRAN ifadeleri tarafından sarılmıştır. Bu INSERT ifadesinin tamamıyla başarıyla gerçekleşmesini ya da tamamıyla başarısız olmasını sağlar. Eğer herhangi bir runtime hatası vermezse, transaction gerçekleşir ve iki insert ifadesinin sonucu veritabanına işlenir. Eğer birinci INSERT işlemi sırasında hata olursa execution CATCH bloğa geçer; ikinci INSERT işlemini atlayarak CATCH bloğu içindeki ROLLBACK ifadesi transaction’ı sonlandırır. Eğer ikinci INSERT işlemi sırasında hata olursa execution CATCH bloğa geçer. İlk INSERT komutu başarıyla tamamlandığından ve satırlar Siparisler tablosuna eklendiği için ROLLBACK ifadesi başarılı olan INSERT işlemini geri alır.
 
Categories: SQL Hakkında Tags:

SQL NULLIF

Pazartesi, 25 Tem 2016 yorum yok

NULLIF kullanımı . . . 

CREATE TABLE #tmpTable (
  Id					int,
  CustomerName			varchar(50),
  identification_number varchar(11),
  tax_number			varchar(10)
  )
GO
 
INSERT #tmpTable VALUES(1,'Firma A', '12345678912', '9876543213');
INSERT #tmpTable VALUES(2,'Firma B', '', '4568529873');
INSERT #tmpTable VALUES(3,'Firma C', NUll, '9876543213');

select Id,
		CustomerName,
		isnull(identification_number, tax_number) as tax_number
from #tmpTable

select Id,
		CustomerName,
		isnull(nullif(identification_number,''), tax_number) as tax_number,
		'nullif KULLANILDIĞINDA' as info
from #tmpTable

--Farklı kullanımları var
--tax_number = '4568529873' ise NULL yapmak içinde kullanılabilir.
select Id,
		CustomerName,
		nullif(tax_number,'4568529873') as tax_number,
		'nullif KULLANILDIĞINDA' as info
from #tmpTable

 

Categories: SQL Hakkında Tags: ,

View üzerine Index ekleme

Salı, 28 Haz 2016 yorum yok
alter view [dbo].[vm_testb] WITH SCHEMABINDING
as
select card_number,	
	   right(card_number,8) as card_number_short
from dbo.TestB
GO


CREATE unique CLUSTERED INDEX vm_testb_uni
ON dbo.vm_testb (card_number)
GO

CREATE nonCLUSTERED INDEX vm_testb_not_uni
ON dbo.vm_testb (card_number_short)
go

select *
from TestB
where RIGHT(card_number,8) = 17378223

select *
from vm_testb
where card_number_short = 17378223

Ek bilgi: http://gaffarsalkim.blogspot.com.tr/2012/05/ms-sql-de-with-schemabinding.html

Categories: SQL Hakkında Tags:

SQL Server Locking Hints

Perşembe, 02 Haz 2016 yorum yok

Sql server da yaptığımız bazı işlemler sırasında kullandığımız tabloları kilitlememiz gerekebilir. Yada kilitli bir tablodan kilidin açılmasını beklemeden sorgu çekmek isteyebiliriz. Bu gibi durumlar için kullanabileceğimiz sql server locking hint leri aşağıdaki gibidir;

HOLDLOCK = Kilitlenme işleminin transaction bitimine kadar sürmesini sağlar. Tablock gibi bazı ifadeler sadece statement bazında kilitleme yapmaktadır. Bunların transaction bazında kilitleme yapması isteniyorsa HOLDLOCK ifadesiyle beraber kullanılması gerekmektedir. HOLDLOCK, SERIALIZABLE ile aynı işi yapmaktadır.

NOLOCK = Kilitli bir tablodan kilidin açılmasını beklemeden kayıt çekmeye yarar. Kirli kayıt (dirty read) alınması mümkündür. Kullanımı Select * from TableName WITH (NOLOCK) şeklindedir. NOLOCK, READUNCOMMITTED ile aynı işi yapmaktadır.

PAGELOCK =  Sayfa bazında kilitleme yapmak için kullanılır.

READCOMMITTED = Kilitli tabloları kullanabilmek için kilidinin açılmasını bekler. SQL Server default udur.

READUNCOMMITTED = NoLock ile aynı işi yapar.

ROWLOCK = Kayıt bazında kilitleme yapmak için kullanılır.

SERIALIZABLE = HoldLock ile aynı işi yapar.

TABLOCK = Tablock ile lock edilen tablolarda read işlemi yapılabilirken insert ve update işlemi yapılamamaktadır. Ayrıca transaction boyutunda çalışabilmesi için holdlock ifadesi ile beraber kullanılması gerekmektedir.

TABLOCKX = Tablockx in tablock dan farkı read işleminide izin vermemesidir. Ayrıca transaction bazında çalışabilmekte dolayısıyla ekstradan holdlock ifadesine gerek kalmamaktadır.

UPDLOCK = Updlock ile locklanmış tablo larda select ve insert işlemleri yapılabilirken, update işlemi yapılamamaktadır. Statement ve transaction bazında çalışır. Transaction bazında çalışması için ayrıca HOLDLOCK ifadesine gerek yoktur.

XLOCK = Tablockx gibidir. Farkı statement da ki bütün işlemlerin bitmesini bekler. En kapsamlı lock işlemidir.

Sistemde bulunan kilitli tablolar EXEC sp_lock komutuyla görüntülenebilir.

Kaynak: http://www.caglarozenc.com/ms-sql-server/sql-server-locking-hints.html

Categories: SQL Hakkında Tags:

Call a webservice from TSQL (Stored Procedure) using MSXML

Salı, 10 May 2016 yorum yok
Categories: SQL Hakkında Tags:

sp_send_dbmail – File attachment max size

Çarşamba, 24 Şub 2016 yorum yok

sp_send_dbmail – File attachment or query results size exceeds allowable value of 10000000 bytes. [SQLSTATE 42000] (Error 22050).  The step failed.

Hatasının çözümü "@query_result_no_padding = 1" yapmaktır.

Categories: SQL Hakkında Tags:

Bir String Veriyi Belirli Bir Karakterle Doldurmak (Sql: Replicate)

Salı, 03 Şub 2015 yorum yok

SQL Serverda bazen bir kolon içindeki veriyi belirli bir uzunluğa kadar sabit bir karakterle doldurmaya ihtiyaç duyarız. (Replice('karaketer',adet))

Örnek:

declare @card varchar(20)
set @card = '54662'

select sonuc = @card + REPLICATE('0',20 - LEN(@card))

 

Categories: SQL Hakkında Tags: ,

SQL Server 2008 R2 Intellisense Sorunu Ve Çözümü

Cuma, 26 Eyl 2014 yorum yok

Sql Server Deadlock Analizi ve Tespit Yöntemleri

Perşembe, 14 Ağu 2014 yorum yok

NVARCHAR ve VARCHAR veri tipleri arasındaki farklar

Pazartesi, 11 Ağu 2014 yorum yok

NVARCHAR ve VARCHAR; iki veri tipi arasındaki tek fark veriyi saklama biçimleri olarak görünüyor, NVARCHAR tipinde multi-language/çokludil olarak UNICODE verileri tutmak mümkün olurken VARCHAR tipinde ise UNICODE olmayan ASCII karakterler tutuluyor.

Faydası ve zararları nelerdir? NVARCHAR tipinde her bir karakter 16bit (2 BYTE) yer kaplarken fakat UNICODE özelliği sayesinde multilingual bir veri tipi sunarken, VARCHAR tipinde her karakter 8 bit (1 BYTE) yer kaplıyor ve multi-language bir veri tipi sunmuyor.

Categories: SQL Hakkında Tags:

WITH(NOLOCK, INDEX(PK_ADISOYADI))

Cuma, 01 Ağu 2014 yorum yok
SELECT * FROM tbl_Musteri WITH(NOLOCK, INDEX(PK_ADISOYADI))

 

Categories: SQL Hakkında Tags:

SQL sa Şifresini Değiştirme

Çarşamba, 11 Haz 2014 yorum yok

SQL sa Şifresini Değiştirme: http://youtu.be/kgfT6YFh6FQ

Categories: SQL Hakkında Tags:

SQL Linked Server

Cumartesi, 01 Şub 2014 yorum yok

Bazı durumlarda aynı veya farklı server lar arasında veri alış – verişi yapmamız gerektiğinde bu durum da Linked Server oluşturabiliriz.

MSSQL Server Management Studio -> Object Explorer -> Server Object ->Linked Servers ->New Linked Server

Linked Server . . .

 

 

 

 

 

 

 

devamını oku…

Categories: SQL Hakkında Tags:

SQL Günün Max Saati

Cuma, 27 Ara 2013 yorum yok
select TodaysLastTime = dateadd(day,datediff(day,0,getdate()),'23:59:59.997')

 

Categories: SQL Hakkında Tags:

HASHBYTES (Transact-SQL)

Salı, 17 Ara 2013 yorum yok

HashBytes ( '<algorithm>', { @input | 'input' } )

<algorithm>::= MD2 | MD4 | MD5 | SHA | SHA1

DECLARE @HashThis nvarchar(4000);
SELECT @HashThis = CONVERT(nvarchar(4000),'dslfdkjLK85kldhnv$n000#knf');
SELECT HashBytes('SHA1', @HashThis);
GO

 

Categories: SQL Hakkında Tags:

SQL – DENSE_RANK Kullanımı

Perşembe, 12 Ara 2013 yorum yok

DENSE_RANK() OVER (ORDER BY HASTA_ID) AS 'HastaNo'

Sorgu sonucunda aynı HASTA_ID ' ye sahip satırlara aynı satır sıra numarasını yazmaktadır.

Categories: SQL Hakkında Tags:

SQL Declare komutu ile table kullanımı

Cuma, 15 Kas 2013 yorum yok
declare @tablename varchar(50) 
set @tablename = 'test' 

declare @sql varchar(500)
set @sql = 'select * from ' + @tablename 
exec (@sql)

 

Categories: SQL Hakkında Tags:

SQL Alter Komutu, Tablo Üzerinde Değişiklik

Cumartesi, 12 Eki 2013 yorum yok

Mevcut tablomuzda değişiklik yapmamız gerektiği zaman "ALTER" komutu bize yardımcı olacaktır. Var olan tabloya bir alan eklemek, alanın adını, tipi ,boyutunu vs. durumunu değiştirmeye yaramaktadır.

Öncelikle örnek bir tablo oluşturalım;

CREATE TABLE Musteri(
   Id int,
   Adi vharchar(50),
   Soyadi vharchar(50),
   DogumTarihi DateTime)

Tabloya Kolon;
Eklemek: ALTER TABLE Tablo_Adı   ADD     Alan_Adı    Veri_Tip
                             Örnek: ALTER Musteri ADD Ceptel    varchar(11) null
Silmek:    
ALTER TABLE Tablo_Adı   DROP COLUMN    Alan_Adı
                             Örnek: ALTER Musteri DROP COLUMN CepTel

Veri tipini değiştirme: ALTER TABLE Tablo_Adi ALTER COLUMN Alan_Adi Yeni_Veri_Tipi 
                             Örnek: ALTER TABLE Musteri ALTER COLUMN CepTel char(11) not null

Categories: SQL Hakkında Tags:

SQL Server 2008 R2 Expire Sorunu

Pazartesi, 08 Tem 2013 yorum yok

Aşğıdaki makelede “Expire” olmuş sql sunucusunu nasıl düzeltileceğini anlatmaktadır.

SQLCoffee – Evaluation Period Has Expired

Categories: SQL Hakkında Tags:

SQL – ROW_NUMBER Kullanımı

Cumartesi, 01 Haz 2013 yorum yok

Merhabalar,

Müşteri tablosundaki müşteri adı "YAKUP" olan kayıtları listeledikten sonra projenizde kayıtları gösterirken sıra numarasını da kolon olarak göstermek isterseniz yapmanız gerek ROW_NUMBER komutunu kullanmaktır.

SELECT TOP 3 ROW_NUMBER() OVER(ORDER BY MUSTERI_ID) AS 'SATIR',* FROM MUSTERILER WHERE MUSTERI_ADI LIKE '%YAKUP%'

SATIR MUSTERI_ID MUSTERI_ADI SOYADI
1 1254 YAKUP KALEBAŞI
2 5246 YAKUP ÖZCAN
3 89756 YAKUP KARAOSMAN

Görüldüğü üzere sadece 3 kayıt ve 3 farklı MUSTERI_ID sahip kişiler listelendi. Fakat SATIR kolonu 1,2,3 . . . diye devam ettiğini görebilirsiniz.

Categories: SQL Hakkında Tags:

Veritabanı Nedir?

Pazar, 10 Şub 2013 yorum yok

Basit bir örnek vererek anlatmaya çalışayım;
Günlük hayatta kullandığımız telefon defteri verileri saklanacak ortam, içindeki kişiler ve onların bilgileri ise verileri ifade etmektedir.
Telefon defteri veritabanı ise içindeki bilgilerde verileri ifade etmektedir. Günümüzde farklı veri tabanları bulunmaktadır.

Bunlardan bazıları;

  • Microsoft SQL Server
  • Oracle
  • MySQL
  • PostgreSQL
  • Interbase
  • Progress
  • Microsoft Access
  • Categories: SQL Hakkında Tags:

    SQL Nedir?

    Cumartesi, 09 Şub 2013 yorum yok

    SQL (Eng: Structured Query Language – Tr: Yapısal Sorgulama Dili)

    Veritabanı ile birlikte veri sorgulama diline ihtiyaç duyulmuştur. SQL İBM tarafında 1975′ lerin başında unix ortamı için geliştirildi. En başlarda “SQUARE” dili geliştirildi ve bu dil matematiksel söz dizimine sahiptir. SQUARE dili, matematiksel söz dizimine sahip olduğundan bu dili herkes kullanamıyordu. Daha geniş bir kitlenin kullanabilmesi için ingilizce ye benzer bir dil geliştirildi ve SQL ortaya çıkmıştır. SQL ilişkisel veri alanında oldukça fazla kitleye hitap ettiğinden “Veri Tabanı Yönetim Sistem” lerinde ortak bir dil olmuştur.

    SQL verileri yönetmek ve tasarlamak için kullanılan bir dildir. SQL bir programlama dili değil, veritabanı ortamında kullanılan bir alt dildir.

    Categories: SQL Hakkında Tags: