Dinda Ayu Subagio's Blog

Selamat Datang :)

Contoh-contoh Stored Procedures, Function dan Trigger

Posted Selasa, 27 September 2011 by bahagia bersama dinda :)

Nim / Nama : 10.41010.0250 / Dinda Ayu Dwi Agustina


STORED PROCEDURES


1.       Ini Stored procedures untuk menampilkan productID dan productName dari tabel Products yang di ambil dari database Northwind

CREATE PROCEDURE [dbo].[GetProducts] AS SELECT productID, productName FROM Products

EXEC GetProducts


2.       Ini Stored procedures untuk menampilkan CategoryID ,  CategoryName dan SomeProduct dari tabel Categories yang di INNER JOIN dengan tabel Products yang di ambil dari database Northwind

ALTER PROCEDURE [dbo].[GetCategory]
AS SELECT Products.CategoryID, CategoryName, count (Products.CategoryID)AS SomeProduct
FROM Products INNER JOIN Categories on Products.CategoryID=Categories.CategoryID
GROUP BY Products.CategoryID, CategoryName

EXEC [GetCategory]


3.       Ini Stored procedures untuk menghitung stok barang masuk dan keluar

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

ALTER PROC sp_hitungStok AS

create table #tb_hasil(kode char(4), qty float) 

insert into #tb_hasil

select kode, qty from tb_masuk

insert into #tb_hasil

select kode, qty from tb_keluar

select kode, sum(qty)from #tb_hasil group by kode order by kode

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

EXEC sp_hitungStok


4.       Ini Stored procedures untuk menampilkan SupplierID ,  ProductName dan SomeProduct dari tabel Suppliers yang di INNER JOIN dengan tabel Products yang di ambil dari database Northwind

CREATE PROCEDURE [dbo].[GetSuppliers]
AS SELECT Products.SupplierID, ProductName, count (Products.SupplierID)AS SomeProduct
FROM Products INNER JOIN Suppliers on Products.SupplierID=Suppliers.SupplierID
GROUP BY Products.SupplierID, ProductName

EXEC [GetSuppliers]


5.       Ini Stored procedures untuk menampilkan CustomerID , OrderDate , CompanyName dan SomeProduct dari tabel Customers yang di INNER JOIN dengan tabel Orders yang di ambil dari database Northwind

CREATE PROCEDURE [dbo].[GetCustomers]
AS SELECT Orders.CustomerID, OrderDate , CompanyName, count (Orders.CustomerID)AS SomeProduct
FROM Orders INNER JOIN Customers on Orders.CustomerID=Customers.CustomerID
GROUP BY Orders.CustomerID, OrderDate , CompanyName

EXEC [GetCustomers]



FUNCTION

1. 
1.  Ini sebuah function yang digunakan untuk rata-rata (AVG)

SELECT CustomerID FROM Orders
WHERE Freight>(SELECT AVG(Freight) FROM Orders)

2.       Ini sebuah function yang digunakan untuk menjumlahkan (SUM)
SELECT CustomerID,Freight,SUM(Freight) FROM Orders
GROUP BY CustomerID,Freight

3.       Ini sebuah function COUNT
SELECT COUNT(CustomerID) AS CustomerNilsen FROM Orders
WHERE CustomerID='Nilsen'

4.       Ini sebuah function MAX
SELECT MAX(Freight) AS LargestFreight FROM Orders

5.       Ini sebuah function MIN
SELECT MIN(Freight) AS SmallestFreight FROM Orders



TRIGGER

1.       Ini trigger untuk mengupdate data penjualan

CREATE TRIGGER [ISIDATABULANDANTAHUN] ON dbo.PENJUALAN
FOR INSERT,UPDATE
AS
DECLARE
@NO_PENJUALAN int,
@BULAN int,
@TAHUN int

SELECT
@NO_PENJUALAN=NOMOR_PENJUALAN,
@BULAN=MONTH(TANGGAL_PENJUALAN),
@TAHUN=YEAR(TANGGAL_PENJUALAN)
FROM INSERTED;

BEGIN
UPDATE PENJUALAN SET BULAN=@BULAN,TAHUN=@TAHUN
WHERE NOMOR_PENJUALAN=@NO_PENJUALAN;
END


2.        ini trigger untuk menginsertkan

CREATE TRIGGER testref BEFORE INSERT ON test1

  FOR EACH ROW BEGIN

    INSERT INTO test2 SET a2 = NEW.a1;

    DELETE FROM test3 WHERE a3 = NEW.a1;

    UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;

  END;


3.       Ini trigger untuk menginsertkan

create trigger tambahStockbarang on pembelian
for insert
as
update b set b.bar_stock = b.bar_stock + i.pem_jumlah
from barang b join inserted i on b.bar_id = i.bar_id


4.       Ini trigger untuk mengisertkan

CREATE TRIGGER tr_status    

ON daftarnilai

FOR INSERT, UPDATE

AS

DECLARE @kode char(4)

DECLARE @nilai float

SELECT @kode = kode, @nilai = nilai FROM daftarNilai

IF @nilai >= 60

UPDATE daftarSiswa SET status = ‘Lulus’ WHERE kode=@kode

ELSE UPDATE daftarSiswa SET status = ‘Tidak Lulus’ WHERE kode=@kode

Go

5.       Ini trigger untuk men-delete

CREATE TRIGGER CustomerHasOrders
       ON Customers
       FOR DELETE
    AS
       IF EXISTS
          (
           SELECT 'True'
           FROM Deleted d
           JOIN Orders o
              ON d.CustomerID = o.CustomerID
          )

          BEGIN
             RAISERROR('Customer has Order History. Delete failed!', 16,1)
             ROLLBACK TRAN
          END
 GO
    DELETE Customers
       WHERE CustomerID = 'WHITC'
 GO

Posting Komentar

Shoutmix