Volkan Atasever

mühendislik, edebiyat, retro computer, yazılım, şiir, nümismatik, bilişim, podcast ve daha bir çok yazılarım...

SQL Server'da kolon isimlerinde özel karakter kullanmak

clock Ekim 26, 2009 03:13 by author Volkan Atasever

Çoğunlukla kendi tablolarımızı oluştururken kağıt üstünde özel karakterler içeren isimler veririz. Sql server ise bu özel karakterlere izin vermez. Tablo isimlerini eğer standar tablo ismi gibi yazarsanız bu sorunu yaşarsınız fakat bu sorunu köşeli parantez kullanarak aşabiliyoruz. Aşağıdaki örnekte normal kullanımda alınan hata mesajıda ektedir.

create table deneme(m/v varchar(3))

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '/'
.

Köşeli parantezlerimizi kullanıp aynı kodu yazdığımızda ise;

create table deneme([m/v] varchar(3))

Command(s) completed successfully.
 



Veritabanında tablolar arası ilişkiyi nasıl bulabilirim?

clock Ekim 21, 2009 04:11 by author Volkan Atasever

Database Yöneticileri ve SQL Server geliştiricileri genellikle bu ilişkileri bulmak için hızlı bir script'e gereksinim duyar. Normal yollardan incelemek gerçekten bazen imkansıza yakın bazen ise uzun zamanlar alan bir işkenceye dönüşmektedir. Aşağıda SQL Server NewsGroup'larda rastladaığım bir scripte yer vermek istiyorum. Oldukça kullanışlı bir script. Yeni başlayanların ve hatta piyasada deneyimli olanların dahi uzun kağıtlarda bu bağlantıları çözmeye çalıştığına şahit olduğum için faydalı olacağına eminim. AdventureWorks veritabanına ait bir örnek çıktı da aşağıda verilmiştir. Ana tabloyu ve bunun alt tabloları ile beraber foreign keylerin dökümünüde vermektedir.

 

Select

 

object_name(rkeyid) Parent_Table,

 

object_name(fkeyid) Child_Table,

 

object_name(constid) FKey_Name,

 

c1.name FKey_Col,

 

c2.name Ref_KeyCol

 

From

 

sys.sysforeignkeys s

 

Inner join sys.syscolumns c1

 

on ( s.fkeyid = c1.id And s.fkey = c1.colid )

 

Inner join syscolumns c2

 

on ( s.rkeyid = c2.id And s.rkey = c2.colid )

 

Order by Parent_Table,Child_Table

 

 

Script'in AdventureWorks örnek database'in den alınan çıktısı:

 



SQL Server 2008 ile Database'den mail göndermek

clock Mayıs 13, 2009 23:22 by author Volkan Atasever

 

 

Bu işlemle SQL Server 2008 üstün hazır bir prosedür yardımıyla mail atabileceksiniz. Bu işin güzelliklerinden biride bir sorgu ile 

değişken uzunlukta mailleri client erine server üstünden ylladıktan sonra aynı zamanda maillerin 

gidip gitmediğini kuyrukta bekleyip beklemediğini görebilmenizdir. Bir tabloda a kolonu false olan kullanıcılara 

‘Sayın’+isim+’ ‘soyisim+’, üyeliğiniz pasif durumdadır.’ Şeklinde mailleri çok az kod satırı parçasıyla yapmanızı sağlamaktadır.

Bunun dışında kullanımı hayalgücünüzle sınırlıdır.  Bunun için bolca ekran görüntüsü eklemeyi uygun gördüm

İlk adımda yapmamız gereken profil oluşturmak ve account yaratmak olacaktır. Bunun için de Configure Database Mail sihirbazını
 kullanacağız. 
Sihirbaz hesaplar e profilleri yönetmemize sağlar aynı zamanda Database Mail’in genel ayarlarını yapabilirsiniz.
 
Bu konuyu screenshotlarla anlatmam en mantıklısı olacak yapılan ayarlar ve yollar böylece daha iyi anlaşılacaktır.
 
 

 

 

 

 

 

 


 

 

 

 

 

Screenshotlarla gösterildiği gibi ayarları tamamladıktan sonra;

Aşağıdaki mail gönderme prosedürünü çalıştırabilirsiniz.

EXEC sp_send_dbmail 
@profile_name='profiismil', 
@recipients='alıcımailadresi', 
@subject='konu: Test mesajı', 
@body='deneme deneme deneme' 

 
Maillerin durumunu görmek için ise aşağıdaki komutları kullanabilirsiniz;
Use msdb go 
SELECT * FROM sysmail_mailitems GO 
SELECT * FROM sysmail_log   
 
Kaynak: Pinal Dave


SQL Server 2008 Cube Subclause

clock Mayıs 8, 2009 06:36 by author Volkan Atasever

 

Tablomuzu aşağıdaki şekilde yaratalım:

CREATE TABLE tbl_meslek

(

      meslek varchar(25),

      pozisyon varchar(50),

      Departman varchar(40),

      maas int

)

SQL Server 2008 sorgusu Cube Subclause; 

SELECT pozisyon, Departman, avg(maas) OrtalamaMaas

from tbl_meslek

Group BY

      CUBE (pozisyon, Departman)

SQL Server 2008 deki neyi kolaylaştırıyor ?

SELECT pozisyon Departman, avg(maas) OrtalamaMaas

from tbl_meslek

GROUPING SETS

      (

            (pozisyon, Departman),

            (pozisyon),

            (Departman) ,

            ()         

      )



SQL Injection !

clock Mayıs 8, 2009 06:30 by author Volkan Atasever

 

SQL injection nedir ve naıl yapılır diyenlere güzel bir örnek vermek istiyorum hem açıklayıcı hem de ne olduğunu daha iyi kavramanıza olanak sağlamakta;

DECLARE @password VARCHAR (20);
DECLARE @input    VARCHAR (20);
DECLARE @ExecStr  VARCHAR (1000);

SELECT @password = 'gizlibirsifre';

--  'OR''=' girmek
SELECT @input = '''OR''''=''';

SELECT @ExecStr = 'IF ''' + @password + ''' LIKE ''' + @input + ''' PRINT ''Password Accepted''';

EXEC (@ExecStr);
GO



Volkan Atasever Kimdir ?

E-Mail: volkan(et)volkanatasever.com

Kurucu&Genel Müdür/S4G
Bilgisayar Mühendisi
Eğitmen ve Danışman
Teknoloji Yazarı

mühendislik, edebiyat, retro computer, yazılım, şiir, nümismatik, bilişim, podcast ve bir çok kategoride yazılarım...

     

Yazılım Kitaplarım

   

Şiir Kitaplarım

Ulusal Yayınlar ve Programlar

 

Sosyal Ağlarım

 

 

 

 

Retro Bilgisayar Dergimiz

Türkçe Retro Bilgisayar dergimiz haziran 2016'da ilk sayısını çıkardı.  Sizde katkıda bulunmak isterseniz bana mail atmanız yeterli. Dergimiz PDF formatında ve tamamen ücretsizdir. Software4Galaxy imtiyaz sahibidir. S4G sitesinden veya facebook sayfasından dergilere ulaşabilirsiniz.

Üye Olduğum Dernek ve Organizasyonlar

 

Yasal Bilgi

Sitedeki yazıları,kodlar ve diğer materyaller Volkan Atasever'e aittir. Yazarı ve siteyi kaynak göstererek yazıları paylaşabilirsiniz.  Copyright(c)2004-2019

Sign In

Yazılım