--Customers tablosunda id değeri parametre olarak verilen kaydın CompanyName değerini güncelleyen bir proc yazın.
create proc up_MusteriGuncelle
(
@CustomerID nchar(5),
@CompanyName nvarchar(40)
)
as
update Customers set CompanyName=@CompanyName where @CustomerID=CustomerID
---ALFKI CompanyName'i güncelleyelim
exec up_MusteriGuncelle 'ALFKI','Alfred Caglar LTD'
select * from Customers
--log tutmak için tablo oluşturalım
create table Kayitlar
(
KayitID uniqueidentifier primary key,
Tarih datetime,
Detay varchar(max)
)
--order details tablosunda değişiklikleri kaydedeck bir trigger
alter trigger tg_KayitYap
on [Order Details]
for update
as
declare @eskiSiparisID int, @yeniSiparisID int
declare @eskiUrunID int, @yeniUrunID int
declare @eskiAdet smallint, @yeniAdet smallint
select @eskiSiparisID=OrderID, @eskiUrunID =ProductID, @eskiAdet= Quantity
from deleted
select @yeniSiparisID=OrderID, @yeniUrunID =ProductID, @yeniAdet= Quantity
from inserted
declare @bilgi varchar(max)
set @bilgi='Eski kayıt (OrderID: '+cast(@eskiSiparisID as varchar (5))+', ProductID: ' +cast(@eskiUrunID as varchar(3))+',Quantity : '+cast(@eskiAdet as varchar(3))+') Yeni Kayıt(OrderID: '+cast(@yeniSiparisID as varchar (5))+', ProductID: ' +cast(@yeniUrunID as varchar(3))+',Quantity : '+cast(@yeniAdet as varchar(3))+')'
insert into Kayitlar values (newid(),getdate(),@bilgi)
--update yapalım
update [Order Details] set Quantity=123 where OrderID=10248 and ProductID=1
--sonucu görelim
select * from Kayitlar
--sonuç şu şekilde olmalı
--Eski kayit (OrderID: 10248, ProductID: 1,Quantity : 2) Yeni Kayit(OrderID: 10248, ProductID: 1,Quantity : 123)
Rather the helpful information