Nis 26
Database Management System-DBMS(Veritabanı Yönetim Sistemleri - VTYS)’larda veritabanının sahip olduğu nesneler hakkında bilgi almak, metadalarını(veri nesneleri hakkında veri tablosu) sorgulamak için bazı yöntemler sunulur. Bunlardan bir tanesi ANSI_SQL standartı olan INFORMATION_SCHEMA ile başlayan metadata viewleri diğer yöntem ise sistem tablolarıdır. Bu bilgiler, bir uygulamanın database katmanı için kodları generate etmekte kullanıldığı gibi SQL Injection gibi kötü niyetler için de kullanılmaktadır. Ayrıca database üzerinde yeni bir nesne oluşturulacağı zaman onun önceden var olup olmadığını kontrol etmek veya nesneyi silmeye çalıştığımızda gerçekten veritabanında öyle bir nesnenin olduğundan emin olmak için veritabanının metaverisini sorgulamak işlemlerin doğru sonuçlanması açısından önemlidir.
SQL Server’da kullanılan metadata viewleri şunlardır;
- CHECK_CONSTRAINTS,
- COLUMN_DOMAIN_USAGE
- COLUMN_PRIVILEGES
- COLUMNS
- CONSTRAINT_COLUMN_USAGE
- CONSTRAINT_TABLE_USAGE
- DOMAIN_CONSTRAINTS
- DOMAINS
- KEY_COLUMN_USAGE
- PARAMETERS
- REFERENTIAL_CONSTRAINTS
- ROUTINE_COLUMNS
- ROUTINES
- SCHEMATA
- TABLE_CONSTRAINTS
- TABLE_PRIVILEGES
Read the rest of this entry »
Nis 22
Önceki yazıda mükerrer eden kayıtları sahip oldukları identity değeri sayesinde silebiliyorduk. Peki Sql Server’daki bu tabloda kayıtları birbirinden ayıracak herhangi bir Primary Key veya Unique Constraint yoksa kayıtları nasıl sileceğiz. L_User isimli tablosunda kayıtları şu şekilde durduğunu varsayalım.
Read the rest of this entry »
Nis 21
Sql Server’da bir tablodaki tekrar eden kayıtları nasıl silebiliriz ?
L_User isminde bir tablo oluşturup tabloya bir kaç kayıt girelim.
CREATE TABLE [dbo].[L_User] (
[ColumnId] [int] IDENTITY (1, 1) NOT NULL ,
[UserName] [char] (10) NULL ,
[UserPwd] [char] (10) NULL
) ON [PRIMARY]
Read the rest of this entry »
Nis 18
Özellikle yeni bir kaydın yapılacağı sayfalarda KAYDET butonuna birden fazla tıklandığı zaman veritabanında mükerrer kayıt oluşmaktadır. Bunu engellemek için ASP.NET öncesi teknolojilerde submit butonu gibi formu submit eden kontrolü JavaScript yardımıyla önce disable edip ardından formu submit ediyorduk.
Aynı mantığı ASP.NET server kontrolleri için de uyguladığımızda kontrolün disable olduğunu ancak postback işlemini gerçekleştirmediğine şahit oluruz. Event metodu verilmiş bir buttonu aşağıdaki gibi kodlayalım;
Read the rest of this entry »
Nis 14
SQL Server’da bir kolonda bulunan dataları belli koşula göre iki kolon şeklinde ifade etmeye çalışalım. Bunun için güzel bir örnek olarak tüm alış, satış, müşteri iaderlerin tutulduğu bir tabloyu düşünelim. HAREKET isimli bu tabloda hareketleri birbirinden ayırmak HareketTip isminde bir kolon kullanacağız. Bu kolonda “A”, alış, “S”, satış anlamına gelmektedir. Tabloda yıllara göre hareket özetleri verilmiştir.
CREATE TABLE [dbo].[HAREKET](
[HareketId] [int] IDENTITY(1,1) NOT NULL,
[HareketTip] [char](1) COLLATE Turkish_CI_AS NULL,
[Yil] [int] NULL,
[Adet] [int] NULL
) ON [PRIMARY]
Örnek olarak aşağıdaki verileri girelim.
| HareketId |
HareketTip |
Yil |
Adet |
| 1 |
A |
2001 |
10 |
| 2 |
A |
2001 |
20 |
| 3 |
S |
2001 |
5 |
| 4 |
S |
2002 |
4 |
| 5 |
A |
2002 |
14 |
Read the rest of this entry »
Recent Comments