2007-01-31
TTNet'in Azizliği!
Neyse www.sikayetvar.com a şikayet gireyim dedim. Tek tek baktım şikayetlere. Baktığım hiçbir şikayetin çözülmediğini gördüm. Şirketin başarına bakayım dedim. Bir de ne göreyim %6 başarı. Yani 100 şikayetten 6 şikayete cevap verme zahmetinde bulunmuşlar. Aldığımız hizmet konusunda daha fırınla ekmek yememiz gerekiyor. Hele hele internet hizmetleri ile yine sınıfta kaldık. Bravo Türk Telekom güya özelleştin ama hala sözdeliğini kaybetmemişsin.
2007-01-30
ASP'den Word'e Aktarma
Response.Buffer = True
Response.ContentType = "application/vnd.ms-word"
Response.AddHeader "content-disposition", "inline; filename = DosyaAdi.doc"
2007-01-29
Row_Number()
Örnek:
SELECT ROW_NUMBER() OVER (ORDER BY CustomerID),* FROM Customers
2007-01-27
Sigaraya HAYIR!
Bu akşam içimden sigara ile ilgili bir şeyler karalamak geçti. Bugüne kadar hayatıma girmemiş olan sigaranın; siz sevgili günlük sakinlerinden kimin hayatına girmeyi başardığını kimlerin ise hayatına yanaşamadığını merak ettim. Tüm site sakinlerini ve ziyaretçileri klavye başına çağırıp sigara hakkında değerli yorumlarını yazmalarını bekliyorum.
Lütfen yorumlarınızı yazarken
- sigara kullanıp kullanmadığınızı,
- kullanıyorsanız ne kadar süredir kullandığınızı,
- sigarayı hayatınızdan uzaklaştımanın vaktinin gelip gelmediğini,
- sigarayi niçin kullandığınızı,
- sigaranın kullanım amacınızın sizi tatmin edip etmediğini,
- sigara içen arkadaşlara ne tür tavsiyelerde bulanabileceğinizi,
- sigaranın nasıl bırakabileceği
vs gibi konulara değinmenizi rica edeceğim.
Bol oksijenli, yemyeşil ve sigarasız bir dünya temennisiyle herkese sağlıklı günler diliyorum.
2007-01-24
sp_special_columns
Syntax
sp_special_columns [@name=] 'name' [,[owner=] 'owner'] [,[@qualifier=] 'qualifier'] [,[@col_type=] 'col_type'] [,[@scope=] 'scope'] [,[@nullable=] 'nullable'] [,[@ODBCVer=] 'ODBCVer']
sp_server_info
Syntax
sp_server_info [[@attribute_id =] 'attribute_id']
Geleceğin 10 Mesleği
İşte geleceğin 10 mesleği:
- Deneyim Tasarımcısı
- Tibbi Araştırmalar
- Web Tasarımcısı
- İnternet Güvenliği
- Şehir Planlayıcısı
- Medya Promosyoncusu
- Yetenek Avcıları
- Satın Alma Ajanları
- Sanat Yönetmenleri
- Haber Analistleri
2007-01-22
SysObjects Tablosu XType
Kod | Açıklaması |
C | CHECK constraint |
D | Default or DEFAULT constraint |
F | FOREIGN KEY constraint |
L | Log |
FN | Scalar function |
IF | Inline table-function |
P | Stored procedure |
R | Rule |
PK | PRIMARY KEY constraint (type is K) |
RF | Replication filter stored procedure |
S | System table |
TF | Table function |
TR | Trigger |
U | User table |
UQ | UNIQUE constraint (type is K) |
V | View |
X | Extended stored procedure |
sp_pkeys ve sp_fkeys
Syntax
sp_pkeys [ @table_name = ] 'name' [ , [ @table_owner = ] 'owner' ] [ , [ @table_qualifier = ] 'qualifier' ]
Syntax
sp_fkeys [ @pktable_name = ] 'pktable_name' [ , [ @pktable_owner = ] 'pktable_owner' ] [ , [ @pktable_qualifier = ] 'pktable_qualifier' ] { , [ @fktable_name = ] 'fktable_name' } [ , [ @fktable_owner = ] 'fktable_owner' ] [ , [ @fktable_qualifier = ] 'fktable_qualifier' ]
Örnek:
--Primary key için
EXEC sp_pkeys 'SIPARIS'
--Foreign key için
EXEC sp_fkeys 'SIPARIS'
sp_columns
Syntax
sp_columns [ @table_name = ] object [ , [ @table_owner = ] owner ] [ , [ @table_qualifier = ] qualifier ] [ , [ @column_name = ] column ] [ , [ @ODBCVer = ] ODBCVer ]
sp_columns SP si ile aşağıdaki alanlara iat bilgiler elde edilebilir:
TABLE_QUALIFIER
TABLE_OWNER
TABLE_NAME
COLUMN_NAME
DATA_TYPE
TYPE_NAME
PRECISION
LENGTH
SCALE
RADIX
NULLABLE
REMARKS
COLUMN_DEF
SQL_DATA_TYPE
SQL_DATETIME_SUB
CHAR_OCTET_LENGTH
ORDINAL_POSITION
IS_NULLABLE SS_DATA_TYPE
Örnek: SIPARIS tablomuzda bulunan alan adları ve alan adlarının özelliklerini aşağıdaki komut ile alabiliriz.
EXEC sp_columns 'SIPARIS
sp_tables
Syntax
sp_tables [ [ @table_name = ] 'name' ] [ , [ @table_owner = ] 'owner' ]
[ , [ @table_qualifier = ] 'qualifier' ] [ , [ @table_type = ] "type" ]
Örnek 1: Veritabanındaki tüm tablo adlarını listeleyelim.
exec sp_tables
Örnek 2: Veritabanımızda bulunan SIPARIS adlı tablomuzu listeleyelim.
exec sp_tables 'SIPARIS'
Örnek 3: Sadece veritabanımızda tabloları listeleyelim:
exec sp_tables @table_type="'TABLE'"
Örnek 4: Sadece veritabanımızda viewları listeleyelim:
exec sp_tables @table_type="'VIEW'"
Örnek 5: Sadece veritabanımızda sistem tablolarını listeleyelim:
exec sp_tables @table_type="'SYSTEM TABLE'"
sp_databases
Syntax
sp_databases
sp_stored_procedures
Syntax
sp_stored_procedures [[@sp_name =] 'name'] [,[@sp_owner =] 'owner'] [,[@sp_qualifier =] 'qualifier']
Parametre olarak herhangi bir şey girmezseniz o aktif veritabanında bulunan tüm SP isimleri hakkında bilgi verir.
Registery Okuyup-Yazmak
Sub SaveSetting(AppName As String, Section As String, Key As String, Setting As String)
okumak için ise
Function GetSetting(AppName As String, Section As String, Key As String, [Default]) As String
komutlarını kullanabilirsiniz.
2007-01-20
sp_table_privileges
Syntax:
sp_table_privileges [ @table_name_pattern = ] 'table_name_pattern' [ , [ @table_owner_pattern = ] 'table_owner_pattern' ] [ , [ @table_qualifier = ] 'table_qualifier' ]
SIPARIS tablomla ilgili izinlere bakmak istersem SP mizi aşağıdaki gibi çalıştırırız:
EXEC sp_table_privileges siparis
Sonuç çıktısı aşağıdaki gibi olur:
TABLE_QUALIFIER | TABLE_OWNER | TABLE_NAME | GRANTOR | GRANTEE | PRIVILEGE | IS_GRANTABLE |
ithalat | dbo | SIPARIS | dbo | dbo | DELETE | YES |
ithalat | dbo | SIPARIS | dbo | dbo | INSERT | YES |
ithalat | dbo | SIPARIS | dbo | dbo | REFERENCES | YES |
ithalat | dbo | SIPARIS | dbo | dbo | SELECT | YES |
ithalat | dbo | SIPARIS | dbo | dbo | UPDATE | YES |
2007-01-19
Hedef Değiştirme Oyunu
Silahlı saldırının arkasındaki güçlerin Türkiye'yi dış siyasetten iç siyasete çekme niyetleri var. Son zamanlarda Türkiye'nin atmaya çalıştığı adımları analiz edip sonuçlarınının getireceklerini hayal edebilirsek kurşunların geliş yönünü de bulma imkanımız olur.
Elimizde Türkiye'nin satranç tahtasındaki hamleleri, karşı hamleler, zamanlama, seçilen kişi, sonuçlarla ilgili olasılıklar vs gibi argümanlar var. Bu parametreleri kullanarak kanlı ellerin fonksiyonu rahatlıkla bulunabilir.
KILL Komutu
Syntax
KILL {spid UOW} [WITH STATUSONLY]
Örnek: KILL 53
--53 nolu processi sonlandırır.
SP_LOCK
Syntax:
sp_lock [[@spid1 =] 'spid1'] [,[@spid2 =] 'spid2']
Öğrenme İçin Öneriler
- Okudukça okunulan kısımlar ile ilgili uygulamalar yapılmalı
- Sadece bir kitap ile bağlı kalınmamalı internetten değişik kaynaklara bakılmalı, değişik kod örneklerine bakılmalı
- Takıldığınız yerlerde forumları kullanınız hatta öğrendiklerinizi diğer insanlara aktarmaya çalışınız; onların sorularına cevap veriniz, çözümü bilmiyorsanız çözümü öğrenip öğrendiğiniz çözümü karşınızdaki kişilere aktarınız.
- İlgili konu hakkında bahsedilen temel adımlarda aktiflik oldukça zamanla hayal edemediğiniz kadar ilerdiğinizi göreceksiniz.
- İlerlediğinizi görmek sizi rehavete ve çokbilmişlik psikolojisine itip sizi köreltmesin her an öğrenme ve öğretme konusunda aç olun.
2007-01-17
Microsoft Zirvesi 2007
- 2007 Microsoft Office Sistemi Zirvesi
- Belediye Zirvesi
- Dynamics AX 4.0 Lansmanı
- Finans Zirvesi
- Kurumsal İş Çözümleri Zirvesi
- Üretim ve Parekende Zirvesi
- Yazılım Geliştiriciler Zirvesi
- Windows Vista Zirvesi
Yazılım Geliştiriciler Zirvesinde buluşmak dileğiyle..
2007-01-15
CETURK:1000.Mesaj
Hep beraber nice GÜZELliklere; nice binlik mesajlara...
2007-01-12
Online Seçmen Kaydı Sorgulama
Sandık Bilgisi Sorgulama
2007-01-10
Nesneyi Gizleyip Gösterme
ASP uygulamamda Debit Note Iptal seçeneği seçilince iptal gerekçesi için bir text alanının gözükmesini sağlayacağım. Diğer tüm durumlarda bu alan gözükmeyecek. Bunun için INPUT nesnemizin OnChange olayına aşağıdaki JavaScript kodunu yazmamız gerekir:
function IptalAciklama()
{
var f=document.FrmDebit;
var styleObj= document.getElementById("IptalAciklama").style;
if(f.Onay.value==3)
{
styleObj.visibility="visible";
}
else
{
styleObj.visibility="hidden";
}
}
Add Linked Server
Söz dizimi:
sp_addlinkedserver [@server=] 'server' [, [@srvproduct=] 'product_name'] [, [@provider=] 'provider_name'] [, [@datasrc=] 'data_source'] [, [@location=] 'location'] [, [@provstr=] 'provider_string'] [, [@catalog=] 'catalog']
Örnek: CETURK adlı SQL Serverımızı kendi serverımıza link edelim:
USE master
EXEC sp_addlinkedserver 'CETURK', N'SQL Server'
Dipnot: Bu sp yi kullanabilmek için sysadmin ve setupadmin server rollerinizin olması lazım.
@@IDENTITY
INSERT INTO Tablo_Adi (Alan_Adlari)
VALUES (Eklenecek_Degerler)
SELECT @@IDENTITY AS 'Identity'
Araştırmalarım sonucu yukarıdaki iş için aşağıdaki 3 farklı değişken ve fonksiyonun olduğunu gördüm. Açıklama ve aradaki farklar aşağıdaki gibidir:
- IDENT_CURRENT('Tablo_Adi') : Belirli bir tabloda herhangi bir oturum yada geçerlilik alanında en son Identity değerini döndürür.
Örnek: SELECT IDENT_CURRENT('Personel')
- @@IDENTITY : Herhangi bir tabloda o anki bir oturum yada tüm geçerlilik alanlarında en son Identity değerini döndürür.
- SCOPE_IDENTITY() : Herhangi bir tabloda o anki oturum yada o anki geçerlilik alanında en son Identity değerini döndürür.
Örnek: SELECT SCOPE_IDENTITY()
MD5 ile Şifreleme
xp_md5.dll dosyasını aşağıdaki gibi manuel olarak ekleyebilirsiniz(bu ekleme xp_md5 Extended Stored procedure nı oluşturur):
USE master;
EXEC sp_addextendedproc 'xp_md5', 'xp_md5.dll'
İşinize yarayacak şekilde xp_md5 içerecek bir User Defined Function oluşturabilirsiniz:
CREATE FUNCTION [dbo].[fn_md5] (@string VARCHAR(8000))
RETURNS CHAR(32)
AS
BEGIN
DECLARE @hash CHAR(32)
EXEC master.dbo.xp_md5 @string, @hash OUTPUT RETURN @hash
END
Tanımladığımız User Define Function u aşağıdaki gibi kullanabilirsiniz:
SELECT dbo.fn_md5('Hello world!')
Yukardaki ifadenin çıktısı : 86fb269d190d2c85f6e0468ceca42a20 olur.
Bunun yerine direk olarak xp_md5 Extended Stored Procedure nı da aşağıdaki şekilde kullanabilirsiniz:
EXEC master.dbo.xp_md5 'Hello world!'
Bu ifadenin çıktısı da: 86fb269d190d2c85f6e0468ceca42a20 olur.
Kullanıcı Silme
Syntax:
sp_droplogin [ @loginame = ] 'login'
Örnek: SQL Server'dan Mehmet loginname ni silelim:
EXEC sp_droplogin 'Mehmet'
Kısıtlama: Sadece sysadmin and securityadmin sunucu rollerine sahip olan kullanıcılar sp_droplogin sp'ünü kullanabilir.
Not: Silinmek istenen login herhangi bir database de map edilmişse sp_droplogin ile silinemez. Önce sp_dropuser ile kullanıcı silinmeli ardından login sp_droplogin ile silinmeli.
Kullanıcı Ekleme
sp_addlogin [ @loginame = ] 'login' [ , [ @passwd = ] 'password' ] [ , [ @defdb = ] 'database' ] [ , [ @deflanguage = ] 'language' ] [ , [ @sid = ] sid ] [ , [ @encryptopt = ] 'encryption_option' ]
Örnek: CETURK database ı için 'Mehmet' kullanıcı adı ve 'GÜZEL' şifreli logini aşağıdaki şekilde oluşturabiliriz:
EXEC sp_addlogin 'Mehmet','GÜZEL', 'CETURK'
Change Owner
sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'
Rastgele(Random) Kayıt
"MS SQL de rastgele kayıtları nasıl alırım?" Bu soru bana sıklıkla sorulduğu için günlüğüme ekleme ihtiyacı hissettim. MS SQL de rastgele 11 kayıtı aşağıdaki şekilde seçebilirsiniz:
*/
SELECT TOP 11 Alan_Adlari
FROM Tablo_Adi
ORDER BY newid()
/*
Not: 11 i istediğiz gibi değiştirip istediğiniz kadar rastgele kayıt seçebilirsiniz. Bu tür şeyleri oyun yada yarışmalar için kullanabilirsiniz.
*/
2007-01-09
Tablo, View İzinleri
Hangi kullanıcı adının hangi tablo ve viewda hangi haklara sahip olduğunu aşağıdaki SQL ile görebilirsiniz:
*/
SELECT *
FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
Sistemdeki Kullanıcılar
SQL Server üzerinde programınızı kullanan kullanıcı adlarını ve bunların bilgisayar adlarını aşağıdaki SQL kodu ile alabilirniz:
*/
SELECT DISTINCT loginame, hostname
FROM master.dbo.sysprocesses
WHERE program_name = Program_Adi
/*
Böylelikle Uygulamanızda Online olan kullanıcı ve bu kullanıcılara ait bilgileri görebilir. Bunlara ek olarak Kullanıcının ID si, Giriş Zamanı, Son Yaptığı İşlemim Zamanı, Lastspid, kullandıkları CPU ve memory miktarını izlebilirsiniz. Tüm bunları bir SP ye atmak yaralı olacaktır.
*/
Konfigürasyon Fonk.
- @@CONNECTIONS: SQL Server’ın en son başlatılmasından sonra oluşan bağlantı sayısını verir.
- @@LANGUAGE: Kullanılan dili verir.
- @@MAX_CONNECTIONS: Aynı anda yapılabilecek max kullanıcı bağlantılarının sayısını verir.
- @@SPID: Mevcut kullacı prosesinin numarasını verir.
- @@SERVERNAME: Yerel server ın adını verir.
- @@VERSION: SQL Server’ın versiyon numarasını verir.
Örnek:SELECT @@CONNECTIONS AS BAGLANTI_SAYISI--ifadesinin sonucunu SERVER'ımda 44440 olarak aldım.
Diğer fonksiyonları kendiniz SELECT ifadesiyle kullanıp sonucunu görebilirsiniz.
Dosya Kontrolü
Örnek: GUZEL.EXE adlı dosyamızın 'C:\MEHMET\ dizini altında olup olmadığını bulan bir SP yazalım:
DECLARE @DonusKodu INT
EXEC @DonusKodu = sp_MSexists_file 'C:\MEHMET\', 'GUZEL.EXE'
IF @DonusKodu = 1
PRINT 'Dosya Var'
ELSE
PRINT 'Dosya Yok'
VT Nesneleri
EXEC sp_help @NesneAdi şeklinde kullanılır.
Örnek: EXEC sp_help V_ODEME --V_ODEME View'ımız hakkında detaylı bilgi verir.
Trigger Adları
Veritabanınızdaki tüm Triggerların adlarının listesini aşağıdaki kodla alabilirsiniz:
*/
SELECT name
FROM sysobjects
WHERE xtype = 'TR'
ORDER BY name
SP Ad ve İçerikleri
SQL Server'daki tüm SP 'lerin ad, id ve içeriklerini(text) veren SP miz aşağıdaki gibidir:
*/
SELECT sysobjects.name, sysobjects.id, syscomments.text
FROM syscomments INNER JOIN sysobjects ON syscomments.id = sysobjects.id
WHERE (sysobjects.xtype = 'P')
/*
Not: Bu SP yi kullanarak aradığınız kelimeleri içeren SP leri listeleyebilirsiniz.
*/
Tablo ve View Adları
Veritabanınızadaki tablo(U) ve View(V) adlarını aşağıdaki SQL ile alabilirsiniz:
*/
SELECT * FROM sysobjects
WHERE (xtype = 'U') OR (xtype = 'V')
Encrypted Trigger Adları
Sadece encrypted olan trigger adlarını aşağıdaki şekilde bulabilirsiniz:
*/
SELECT sysobjects.name
FROM syscomments INNER JOIN sysobjects ON syscomments.id = sysobjects.id
WHERE (sysobjects.xtype = 'TR') AND (syscomments.encrypted=1)
/*
Not: sysobjects.xtype ni 'SP' yaparak encrypted SP lere; 'V' yaparak encrypted viewlara ulaşabilirsiniz.
*/
Kullanıcı Hakları
SELECT * FROM master.dbo.syslogins
ColumnName | DataType | Description |
sid | varbinary(85) | Security identifier. |
status | smallint | For internal use only. |
createdate | datetime | Date the login was added. |
updatedate | datetime | Date the login was updated. |
accdate | datetime | For internal use only. |
totcpu | int | For internal use only. |
totio | int | For internal use only. |
spacelimit | int | For internal use only. |
timelimit | int | For internal use only. |
resultlimit | int | For internal use only. |
name | varchar(30) | Login ID of the user. |
dbname | nvarchar(128) | Name of the user's default database when connection is established. |
password | nvarchar(128) | Encrypted password of the user (may be NULL). |
language | nvarchar(128) | User's default language. |
denylogin | int | 1, if login is a Microsoft® Windows NT® user or group and has been denied access. |
hasaccess | int | 1, if login has been granted access to the server. |
isntname | int | 1 if login is a Windows NT user or group; 0 if the login is a Microsoft SQL Server™ login. |
isntgroup | int | 1, if login is a Windows NT group. |
isntuser | int | 1, if login is a Windows NT user. |
sysadmin | int | 1, if login is a member of the sysadmin server role. |
securityadmin | int | 1, if login is a member of the securityadmin server role. |
serveradmin | int | 1, if login is a member of the serveradmin fixed server role. |
setupadmin | int | 1, if login is a member of the setupadmin fixed server role. |
processadmin | int | 1, if login is a member of the processadmin fixed server role. |
diskadmin | int | 1, if login is a member of the diskadmin fixed server role. |
dbcreator | int | 1, if login is a member of the dbcreator fixed server role. |
loginname | nvarchar(128) | Actual name of the login, which may be different from the login name used by SQL Server. |
2007-01-07
Ajax'a Giriş
AJAX'ın kullandığı teknolojiler:
- HTML/CSS
- DOM/JavaScript
- XML/XSLT/XMLHttpRequest
Tarihi : 1997 yılından beri kullanılıyor. Asenkronize yöntemlerin ilk örneği XMLHttpRequest ortaya çıkmadan Microsoft tarafından yapılan ve Java applet benzeri bir yapı kullanan Remote Scripting'dir. 2002'de özgür yazılım değişikliğiyle AJAX ortaya çıktı.2003'te de bu teknoloji ASP.Net'e de eklendi.
Avantajları:
- Uygulamalar kullanıcının bilgisayarında çalıştığı için network performansı etkilenmez.
- Sunucu daha çok kullanıcıya cevap verebilir çünkü kullanıcı başına daha az istek cevaplamak zorunda kalır.
- Sunucu işlemciyi daha az kullanır.
- Tamamen HTML kullanan yapılara oranla ağ daha az kullanılır.
- Taşınabilirlik.
Dezavantajları/Zorlukları:
- Browser'daki geri tuşunun içeriğinin Ajax ile tutulması mümkün değil.
- Tarayıcıya göre farklı DOM tanımlamak gerekir.
- İyi seviyedeki JavaScript bilgisi gerektirir.
- İyi seviyede DHTML bilmek gerekir.
2007-01-04
Tarih Farkı
İki Tarih Arasindaki Farkı gün, saat ve dakika cinsinden bulur.
*/
CREATE PROCEDURE TarihFarki
@start AS SMALLDATETIME,
@end AS SMALLDATETIME
AS
DECLARE @sure BIGINT
DECLARE @dakika INT
DECLARE @saat INT
DECLARE @gun INT
DECLARE @MSG AS VARCHAR(64)
SET @gun=0
SET @sure=DATEDIFF(MINUTE,@start, @end)
IF (@sure>=1440)
BEGIN
SET @gun=CAST((@sure/1440) AS INT)
SET @sure=@sure-@gun*1440
END
SET @dakika=@sure%60
SET @saat=CAST((@sure/60) AS INT)
SET @MSG='İki tarih arasındaki fark ' + CAST(@gun AS VARCHAR(5)) +' gün ' + CAST(@saat AS VARCHAR(5)) + ' saat ' + cast(@dakika AS VARCHAR(5)) + ' dakika'
SELECT @MSG
2007-01-03
User Defined Function
/*
Mevcut SQL fonksiyonları bize yetmediğinde kendi fonksiyonlarımızı yazarız. İhtiyaç duyduğunuz herhangi bir durum ve anda kullanabilirsiniz.
SP'lerin parametrelere değer atabilmelerine ve veri kümesi üretebilmelerine karşın fonksiyonlar hem değer döndürürler, hem SQL kodlarından kayıt kümesi üretirler, hem de içeride yeni bir kayıt kümesini geçici olarak oluşturup istemciye gönderebilirler. Bununla birlikte SP'ler fonksiyonların aksine bir değişkeni içeride değiştirip geri gönderebilirler.
Bir User Defined Function syntaxı aşağıdaki gibidir:
*/
/*
CREATE Fonksiyon_Adi(Giris_Parametreleri)
RETURNS Donus_Degeri
[WITH]
AS
BEGIN
Fonksiyonun_Govdesi
RETURN Donus_Deyimi
END
Örnek vermek gerekirse Tarih bilgisindeki ayiraçlari istediğimiz gibi yapmak için aşağıdaki fonksiyonu kullanabiliriz:
*/
CREATE FUNCTION TarihFormati (@Tarih datetime, @Ayirac char(1))
RETURNS varchar(20)
AS
BEGIN
RETURN CONVERT(varchar(20),datepart(dd,@Tarih)) + @Ayirac + CONVERT(varchar(20),datepart(mm,@Tarih)) + @Ayirac + CONVERT(varchar(20),datepart(yy,@Tarih))
END
--Fonksiyonu oluşturduktan sonra aşağıdaki ifade ile sonucunu görebilirsiniz:
SELECTdbo.TarihFormati(GETDATE(),':')
/*
Sonuç: 9:1:2005 olur.
Fonsiyonu her yerden kullanabilirsiniz.Burda unutmamanız gereken nokta çağırdığınız yerde fonksiyonun owner ını yazmanız gerektiği. Yukarıda görüldüğü gibi ben dbo kullandım.
*/