SELECT CONVERT(CHAR(8), GETDATE(), 112)

Slides:



Advertisements
Benzer bir sunumlar
Stored Procedure Öğr.Gör.Metin Akbulut.
Advertisements

T sql-diğer komutlar Metin Akbulut.
4 SQL- Yapısal Sorgulama Dili
VERİ TABANI YÖNETİMİ Ders 11: PL/SQL’e Giriş
SQL de Değişken Tanımlama
SQL Komutlar 5 Sibel SOMYÜREK.
EkoPC Bilişim Ltd. Eğitim Hizmetleri
Veri Tabanı Yönetim Sistemleri
Veritabanı Yönetim Sistemleri Hızlı ve Kısa Giriş
T-SQL-2.Konu Akış Kontrolleri.
VERİ TABANI ve YÖNETİMİ
Veri Tabanı Yönetim Sistemleri
BÖLÜM 6 SQL SERVER KOMUTLARI.
Tetikleyici. Nedir? Bir tablo üzerinde Ekleme silme ve güncellemeye bağlı olarak tetiklenip çalışan SQL kodlarıdır. Genel amacı veri bütünlüğünü korumaktır.
SQL (STRUCTURED QUERY LANGUAGE)
VIEW (BAKIŞ) OLUŞTURMA
ÖRNEKLER. musteri Id adi soyadi mus_satis Id barkod adet Urunlar barkod urun_adi kodu fiyati Stok_hareket tarih barkod gelen giden.
SQL Dili ve MySQL Komutları
SQL de Değişken Tanımlama
MySQL Operatörleri ve Fonksiyonları
VeriTabanı Uygulama.
SQL Komutları (2) Uzm. Murat YAZICI.
FONKSİYONLAR İbrahim Onur Sığırcı.
RAISE RECORD/CURSOR TRIGGER
Bilgisayar Mühendisliği Bölümü
Veri Tabanı Yönetim Sistemleri 2 Ders 5 PL/SQL'e Giriş
SQL’ e Giriş Uzm. Murat YAZICI.
Bilgisayar Mühendisliği Bölümü
Bölüm 4: İleri SQL.
SİSTEM VERİTABANLARI. Sistem veritabanlarını tanıma. Kendi Login’imizi oluşturma Neler İşleyeceğiz?
Update UPDATE tablo_ismi SET sutun1=‘deger1’ WHERE sutun=deger.
ADRESİNDEN ÖRNEK VERİ TABANLARINI İNDİRİNİZ
Veri Tabanı Yönetimi Dersi 8. Laboratuvarı Arş. Gör. Pınar CİHAN.
S ORGU / DML / DDL KOMUTLARı İbrahim Onur Sığırcı.
Yapısal Sorgulama Dili SQL VTYS Giriş Hafta 5 Ders Notu.
Altıncı hafta. Müfredat programı Ödev teslim edenler Mantıksal tasarım ödevini teslim edenler: Belediye Projesi Valilik Projesi Mekan Projesi Konaklama.
View View’ler select ifadesi ile tanımlanmış sanal tablolardır. Temel amacı base tabloların içerisinden veri kümesi getirip ortaya çıkan sonucu sanal.
 Stored Procedure kısaca SQL sorgularını isteğimize göre hazırlayıp kullanıma hazır veri tabanı nesnesine çeviren bir araçtır.  Stored Procedure, Türkçeye.
BÖLÜM 9 VERİ TABANI NESNELERİ.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 2
Veri Tabanı Yönetimi Dersi 1. Laboratuvarı
Bilgisayar Mühendisliği Bölümü
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Veri Tabanı Yönetimi Dersi 8. Laboratuvarı
VIEW lerle çalışmak 11.BÖLÜM.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
TETİKLEYİCİ ( Trigger)
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
TETİKLEYİCİLER ve HATA KONTROLÜ
14.DERS Örnekler, Sorular BUKET DOĞAN.
SQL SERVER STORED PROCEDURE
VERİ TABANI SQL (STRUCTURED QUERY LANGUAGE) SAVAŞ TUNÇER.
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
© Marmara Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi
Sorgu / dml / ddl komutları
RAISE RECORD/CURSOR TRIGGER
SQL (STRUCTURED QUERY LANGUAGE)
Stored Procedure Öğr.Gör.Metin Akbulut.
SQL Server - Triggers.
SQL Server - Stored Procedures
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-4-DML
VERİTABANI YÖNETİM SİSTEMLERİ 6-SQL Server-3-DDL
Transaction.
Sunum transkripti:

SELECT CONVERT(CHAR(8), GETDATE(), 112) exec sp_changedbowner 'BUKET-PC\BUKET'

DECLARE @now DATETIME SET @now = GETDATE() PRINT dbo DECLARE @now DATETIME  SET @now = GETDATE()    PRINT dbo.FormatDateTime(@now, 'LONGDATE')  PRINT dbo.FormatDateTime(@now, 'LONGDATEANDTIME')  PRINT dbo.FormatDateTime(@now, 'SHORTDATE')  PRINT dbo.FormatDateTime(@now, 'SHORTDATEANDTIME')  PRINT dbo.FormatDateTime(@now, 'UNIXTIMESTAMP')  PRINT dbo.FormatDateTime(@now, 'YYYYMMDD')  PRINT dbo.FormatDateTime(@now, 'YYYY-MM-DD')  PRINT dbo.FormatDateTime(@now, 'YYMMDD')  PRINT dbo.FormatDateTime(@now, 'YY-MM-DD')  PRINT dbo.FormatDateTime(@now, 'MMDDYY')  PRINT dbo.FormatDateTime(@now, 'MM-DD-YY')  PRINT dbo.FormatDateTime(@now, 'MM/DD/YY')  PRINT dbo.FormatDateTime(@now, 'MM/DD/YYYY')  PRINT dbo.FormatDateTime(@now, 'DDMMYY')  PRINT dbo.FormatDateTime(@now, 'DD-MM-YY')  PRINT dbo.FormatDateTime(@now, 'DD/MM/YY')  PRINT dbo.FormatDateTime(@now, 'DD/MM/YYYY')  PRINT dbo.FormatDateTime(@now, 'HH:MM:SS 24')  PRINT dbo.FormatDateTime(@now, 'HH:MM 24')  PRINT dbo.FormatDateTime(@now, 'HH:MM:SS 12')  PRINT dbo.FormatDateTime(@now, 'HH:MM 12')  PRINT dbo.FormatDateTime(@now, 'goofy')

USE northwind SELECT Customers.CustomerId,Contactname,COUNT(*) from Customers INNER JOIN orders ON Customers.CustomerID=Orders.CustomerID GROUP BY Customers.CustomerId,Contactname

T-SQL Değişken tanımlama, döngü kurma, koşul tanımlamayı sağlayan basit bir programlama ortamıdır. Değişken tanımlamak için: DECLARE @degisken_adi veritipi(boyut) DECLARE @enpahali_Urun VARCHAR(100)

declare @sayı int print 'deger ' set @sayı=233 print @sayı -------------------------------------- print 'deger = '+ convert(varchar(5), @sayı)

T-SQL Değişkene değer atamak için: SET @degisken_adi=deger SET@enpahali_Urun=‘Cep Telefonu’

select @@SERVERNAME, @@version, @@language

use Northwind DECLARE @enyüksek_fiyat MONEY SELECT @enyüksek_fiyat= max(UnitPrice) from Products SELECT @enyüksek_fiyat

use Northwind DECLARE @enyüksek_fiyat MONEY set @enyüksek_fiyat= (select max(UnitPrice) from Products ) SELECT @enyüksek_fiyat --PRINT @enyüksek_fiyat

“ Go komut SQL komut yığınlarını birbirinden ayırmak için kullanılır. ALTER TABLE Products ADD Kdvli MONEY GO UPDATE Products set Kdvli=(UnitPrice*1.2)

use Northwind DECLARE @enyüksek_fiyat MONEY,@urünkod INT,@urunad VARCHAR(100) set @enyüksek_fiyat= (select max(UnitPrice) from Products ) SELECT @urunad=ProductName,@urünkod=ProductId from Products where UnitPrice=@enyüksek_fiyat SELECT @urünkod,@urunad

T-sql IF IF (şartlar1) BEGIN --Kodlar END ELSE IF (şartlar2) -- ELSE -----

DECLARE @ksayısı int SET @ksayısı= (SELECT COUNT(*) FROM CUSTOMERS) IF @ksayısı>80 BEGIN PRINT 'kayıt sayısı 80 den fazla' PRINT @ksayısı END

declare @ksayısı int select @ksayısı=count(*) from customers if @ksayısı>500 print 'kayıt sayısı 500 den fazla' else print 'kayıt sayısı 500 den az' print @ksayısı

CREATE PROCEDURE TabloKontrol @TableName VarChar(128) AS IF EXISTS(SELECT * FROM sysobjects WHERE name = @TableName WHERE xtype=‘u’ ) PRINT @TableName + ' var' ELSE PRINT @TableName + ' yok' GO EXEC TabloKontrol 'Employees'

DECLARE @tablo varchar(10) SET @tablo='Customers' IF EXISTS( SELECT * FROM sysobjects WHERE name = @tablo WHERE xtype=‘u’ ) PRINT @Tablo + ' var' ELSE PRINT @tablo + ' yok' GO

CASE CASE kontrol edilecek değer WHEN aldığı değer 1 THEN değer1 [WHEN aldığı değer2 THEN değer2] [ELSE değer_n] END CASE WHEN karşılaştırma işlemi1 THEN değer1 [WHEN karşılaştırma işlemi2 THEN değer2 [ELSE değer_n] END

SELECT contactname,contacttitle,country, CASE country WHEN 'germany' THEN 'Avrupa' ELSE 'bilinmiyor' END as kıta FROM customers

select contactname,contacttitle,country, case when country in ( 'germany','france','sweden') then 'Avrupa' else 'bilinmiyor' end as kıta from customers

USE northwind SELECT UnitsInStock,sonuc= CASE WHEN (UnitsInStock<40) THEN ‘SİPARİŞ VERİNİZ' ELSE 'YETERLİ STOK VAR' END FROM products SELECT ProductName,UnitsInStock, WHEN (UnitsInStock<40) THEN 'SÝPARÝÞ VERÝNÝZ' ELSE 'YETERLÝ STOK VAR' END AS sonuc

select title, case when price < 12.00 then 'UCUZ' when price < 3.00 then 'ÇOK UCUZ' when price< 20.00 then 'NORMAL' else 'PAHALI' end durum from titles

select productname,Unitprice, case when Unitprice <= 10.00 then 'UCUZ' when Unitprice <= 30.00 then 'NORMAL' when Unitprice<= 50.00 then 'PAHALI' else 'ÇOK PAHALI' end AS durum from products

SELECT productname,UnitsInStock, CASE WHEN UnitsInStock <= 10.00 then 'Stokta ürün azaldı' ELSE 'ürün var' END AS durum FROM products

Select top 8 ProductName, case when QuantityPerUnit like '%Tins%' and Discontinued = 0 then 'Tins' when QuantityPerUnit like '%bottles%' and then 'Bottles' else 'Not Tins, Not Bottles, or is Discontinued' end 'Type or Availability' from products

UPDATE titles. SET price =. CASE WHEN price < 5. THEN price. 1 UPDATE titles SET price = CASE WHEN price < 5 THEN price * 1.25 WHEN price < 10 THEN price * 1.15    WHEN price < 15 THEN price * 1.2 ELSE price END

UPDATE titles SET price = CASE WHEN price<5 THEN price * 1.25 WHEN price<10 THEN price * 1.15 WHEN price < 15 THEN price * 1.2 else price END

UPDATE Products SET UnitPrice = CASE WHEN UnitPrice<10 THEN UnitPrice * 1.25 WHEN UnitPrice<20 THEN UnitPrice * 1.20 WHEN UnitPrice < 30 THEN UnitPrice * 1.15 ELSE UnitPrice*1.1 END

select lastname,firstname,case when Titleofcourtesy in ( 'Mr.') then 'BAY‘ else 'BAYAN' end as CİNSİYET from employees

CURSOR SCROLL CURSOR FETCH Deyimlerinin T-SQL’de kullanım amacı nedir ve birer örnek uygulama

use northwind DECLARE deneme CURSOR FOR SELECT UnitsInStock from products GO DECLARE @stok INT OPEN deneme WHILE (@@FETCH_STATUS=0) BEGIN FETCH deneme INTo @stok PRINT @stok END DEALLOCATE deneme

use northwind DECLARE deneme2 CURSOR FOR SELECT UnitsInStock,Productname from products GO DECLARE @stok INT DECLARE @ad nvarchar(40) OPEN deneme2 WHILE (@@FETCH_STATUS=0) BEGIN FETCH deneme2 INTo @stok,@ad PRINT convert(varchar(10),@stok)+ ' ' + @ad END DEALLOCATE deneme2

DECLARE deneme2 SCROLL CURSOR for SELECT ProductID,ProductName FROM Products OPEN deneme2 --son kayit FETCH LAST FROM deneme2 --baþtan ikinci kayit FETCH ABSOLUTE 2 FROM deneme2 --bulunduðumuz yerden 3 kayit ileri FETCH RELATIVE 3 FROM deneme2 DEALLOCATE deneme2

sysobjects Kısıtlama, varsayılan, günlük, kural ve saklı yordam gibi bir veritabanı içinde oluşturduğunuz her nesne için bir satır içerir. SELECT * FROM sysobjects where xtype='u'

C: Check constraint D: Default constraint F: Foreign Key constraint L: Log P: Stored procedure PK: Primary Key constraint RF: Replication Filter stored procedure S: System table TR: Trigger U: User table UQ: Unique constraint V: View X: Extended stored procedure

SELECT sysobjects.name, syscolumns.name, syscolumns.length FROM sysobjects JOIN syscolumns ON sysobjects.id = syscolumns.id WHERE sysobjects.xtype='U' ORDER BY sysobjects.name

SELECT table_name=sysobjects. name, column_name=syscolumns SELECT table_name=sysobjects.name, column_name=syscolumns.name, datatype=systypes.name, length=syscolumns.length FROM sysobjects INNER JOIN syscolumns ON sysobjects.id = syscolumns.id JOIN systypes ON syscolumns.xtype=systypes.xtype WHERE sysobjects.xtype='U' ORDER BY sysobjects.name,syscolumns.colid

WHILE WHILE (ŞART) BEGIN --KODLAR END

WHILE (SELECT AVG(UnitPrice) FROM Products) < 35 BEGIN UPDATE Products SET UnitPrice = UnitPrice * 1.25 END PRINT 'Done.' GO

Declare @say int Set @say=0 WHILE (SELECT AVG(UnitPrice) FROM Products) < 100 BEGIN set @say=@say+1 UPDATE Products SET UnitPrice = UnitPrice * 1.25 END PRINT CONVERT(VARCHAR(10),@say) PRINT 'Done.' GO

IF NOT EXISTS(SELECT * FROM sysobjects WHERE name = ‘yenitablo') begin CREATE TABLE yenitablo(a int) INSERT INTO yenitablo values (10) INSERT INTO yenitablo values (20) end DECLARE @counter int SET @counter = 1 WHILE @counter < =100 BEGIN UPDATE yenitablo SET a = a + 1 SET @counter = @counter + 1 END Go

IF NOT EXISTS(SELECT * FROM sysobjects WHERE name = 'd1') begin CREATE TABLE d1 (deger int) END GO DECLARE @counter int SET @counter = 1 WHILE @counter < =100 BEGIN INSERT INTO D1 VALUES(@counter) SET @counter = @counter + 1

kullanımına ait birer tane örnek sorgu oluşturunuz. T-SQL’de CASE IF WHILE kullanımına ait birer tane örnek sorgu oluşturunuz.

IF NOT EXISTS(SELECT * FROM sysobjects WHERE name = 'newtabLe1') begin CREATE TABLE newtable1 (a int) INSERT INTO newtable1 values (10) INSERT INTO newtable1 values (20) end DECLARE @counter int SET @counter = 1 WHILE @counter <= 100 BEGIN INSERT INTO newtable1 VALUES(@counter) SET @counter = @counter + 1 END

SELECT Customers.CustomerId,Contactname,OrderId,OrderDate from Customers INNER JOIN orders ON Customers.CustomerID=Orders.CustomerID

Sp_help [object_name]: Belirlenmiş veritabanı nesneleri üzerindeki bilgileri sağlar.    Sp_helpdb [database_name]: Belirlenmiş veritabanı üzerindeki bilgileri sağlar.    Sp_helpindex [table_name]: Belirlenmiş tablo için dizin üzerindeki bilgileri sağlar. 

Cursor Veritabanı sistemlerinde ise, cursor’ün bulunduğu yerdeki verileri yazdırma, ele alma gibi işlemleri yerine getirebiliriz. 1.Cursor tanimlanir: DECLARE cursor_adi CURSOR FOR SELECT IFADESI 2.Cursor açılır: OPEN cursor_adi 3. Cursor üstünde dolasmak için FETCH komutundan faydalanilir: 4. Cursor kapatılır CLOSE cursor_adi 5. Cursor hafizadan silinir: DEALLOCATE cursor_adi

Fetch Fetch cursor hareketlerini yönetir Fetch First: ilk satıra gider. Fetch next: Sonraki satır. Fetch last: bir sonraki kayıta gider. Fetch absolute n  olarak ifade ettiğimizde ise kaç kayıt gidileceğini belirtir. Fetch Relative n olarak ifade ettiğimizde ise kayıt ilerleme miktarını o an bulunan kayıta göre yapar.

@@FETCH_STATUS @@FETCH_STATUS ifadesi döngünün kontrol birimidir. "Fetch" ifadesinin sonucuna göre üç farklı değer alabilir. Bunlar ; 0: Bir önceki "fetch" ifadesi başarılı -1: Bir önceki "fetch" ifadesi hata ile karşılaştı -2: Son kayıt. WHILE @@FETCH_STATUS = 0 ifadesi ile hata olmadığı sürece bir sonraki kayıt elde edilir.

use northwind DECLARE deneme CURSOR FOR SELECT UnitsInStock from products GO DECLARE @stok INT OPEN deneme FETCH deneme INTo @stok WHILE (@@FETCH_STATUS=0) BEGIN PRINT @stok END DEALLOCATE deneme

use northwind DECLARE deneme2 CURSOR FOR SELECT UnitsInStock,Productname from products GO DECLARE @stok INT DECLARE @ad nvarchar(40) OPEN deneme2 FETCH deneme2 INTo @stok,@ad WHILE (@@FETCH_STATUS=0) BEGIN PRINT convert(varchar(10),@stok)+ ' ' + @ad END CLOSE deneme2 DEALLOCATE deneme2

DECLARE deneme2 SCROLL CURSOR for SELECT ProductID,ProductName FROM Products OPEN deneme2 --son kayit FETCH LAST FROM deneme2 --baþtan ikinci kayit FETCH ABSOLUTE 2 FROM deneme2 --bulunduðumuz yerden 3 kayit ileri FETCH RELATIVE 3 FROM deneme2 DEALLOCATE deneme2

DECLARE deneme3 CURSOR FOR SELECT EmployeeID,SicilNo from Employees DECLARE @a int DECLARE @id int DECLARE @sicil int set @a=1000 OPEN deneme3 FETCH NEXT FROM DENEME3 INTO @id,@Sicil WHILE (@@FETCH_STATUS=0) BEGIN update Employees set SicilNo=@a where EmployeeID=@id SET @a=@a+1 END DEALLOCATE deneme3

Order Details tablosu Modify seçeneği ile düzenleme modunda açılır ve aşağıdaki gibi Amount alanı eklenir.

SAKLI YORDAM(STORED PROCEDURE) Belli bir işlevi yerine getirmek için yapılandırılmış program parçacığıdır. Sık yapılan işlemler için bir kere kodlama yapıp çok kez kullanmayı amaçlar.

CREATE PROCEDURE onkisi AS SELECT TOP 10 * FROM Customers ORDER BY CustomerID Çalıştırmak için: EXEC onkisi

Sistem SP Sp_ öneki ile başlayan master veritabanında saklanan prosedürlerdir. Exec sp_helpdb USE Northwind EXEC sp_depends 'Customers'

CREATE PROC deneme2(@ara int) as SELECT * FROM ORDERS WHERE OrderID=@ara Çalıştırırken exec deneme2 10248

CREATE PROCEDURE grupla (@Country nvarchar(30)) AS SELECT City, COUNT(*) AS Müşteri_sayısı FROM Customers WHERE Country LIKE @Country GROUP BY City GO Çalıştırırken : exec grupla 'spain'

TRIGGER SQL de bir tabloda herhangi bir işlem yapıldığı anda otomatik olarak aynı tabloda veya başka bir tabloda başka işlemlerinde yapılmasını istediğimiz zamanlarda, Trigger'lar yapılmasını istediğimiz bu işlemi bizim adımıza otomatik olarak gerçekleştirirler. create trigger Isim on TabloAdi for Insert, Update, Delete (Tek tek veya hepsi birden yazılabilir) as islemler

CREATE TRIGGER Guncelle on [Order Details] for insert AS DECLARE @UrunNo int,@adet int SELECT @UrunNo=ProductId from Inserted SELECT @adet=Quantity from inserted UPDATE Products set UnitsInStock=UnitsInStock-@adet WHERE ProductId=@UrunNo

INSTEAD OF TRIGGER 'lar tetikleyici sorgunun YERİNE çalışırlar INSTEAD OF TRIGGER 'lar tetikleyici sorgunun YERİNE çalışırlar. Ayırdedici tek özellikleri ise BEGIN END satırları arasına yazılıyor olmasıdır..

-- ihtiyaç: Products tablosundan ürün silinmeye çalışıldığında bu ürünün Discontinued kolonunu 1 yapsın (Yani Silmesin, Update etsin): CREATE TRIGGER tr_SatisiDurdur ON Products INSTEAD OF delete -- Delete 'in çalışmasına izin vermeden trigger çalışsın AS BEGIN DECLARE @UrunID int SELECT @UrunID=ProductID FROM deleted UPDATE Products SET Discontinued=1 WHERE ProductID=@UrunID END

SELECT * FROM Products WHERE ProductID=2 DELETE FROM Products WHERE ProductID=2

Use Northwind GO CREATE TRIGGER supp_Delete ON Suppliers FOR DELETE AS IF (SELECT COUNT(*) FROM Deleted) > 1 BEGIN print('Birden fazla tedarik kaydını silemezsiniz.') ROLLBACK TRANSACTION END

Use Northwind GO CREATE TRIGGER Empl_Delete ON Employees FOR DELETE AS IF (SELECT COUNT(*) FROM Deleted) > 1 BEGIN RAISERROR( 'You cannot delete more than one employee at a time.', 16, 1) ROLLBACK TRANSACTION END

RAISERROR Sisteme eklenen mesajların hata oluşması durumunda devreye girmesi için kullanılan fonksiyondur. RAISERROR  Mesaj_kodu: message_id sütunundaki koda karşılık gelir.  Seviye: 0-25 arasında bir sayı olup, mesajın kritik seviyesini gösterir.  Durum: 1-127 arasında bir sayı olup, hata mesajı birden fazla yerde oluştuğunda hata oluşan yerleri ayırt etmek için kullanılır.

Empoyees tablosuna SicilNo alanı eklenecek ve bu alana 1000’den başlayarak birer birer artarak her kayıt için ekleme yapacak T-sql kodunu yazınız.

use northwind DECLARE deneme3 CURSOR FOR SELECT EmployeeID,SicilNo from Employees GO DECLARE @a int DECLARE @id int DECLARE @sicil int set @a=1000 OPEN deneme3 FETCH NEXT FROM DENEME3 INTO @id,@Sicil WHILE (@@FETCH_STATUS=0) BEGIN update Employees set SicilNo=@a where EmployeeID=@id SET @a=@a+1 END DEALLOCATE deneme3

CREATE PROC sp_SelectMe @table_name AS varchar(50) AS DECLARE @cmd AS NVARCHAR(1000) SET @cmd = 'SELECT * FROM ' + @table_name EXEC sp_executesql @cmd

select OrderId,Count(*)from [Order details] group by OrderId

select [order details]. OrderId,count( select [order details].OrderId,count(*),contactName from orders inner join [Order details] on orders.OrderId=[Order details].OrderId inner join Customers on Customers.CustomerId=orders. CustomerID group by [order details].OrderId, contactName

select [order details]. OrderId,count( select [order details].OrderId,count(*),contactName from orders inner join [Order details] on orders.OrderId=[Order details].OrderId inner join Customers on Customers.CustomerId=orders. CustomerID group by [order details].OrderId, contactName having count(*)>=4

select * from orders where CONVERT(varchar,orderdate,103)='04/07/1996'