MSSQL
Stored procedure T-SQL di SQL Server untuk pemula
Pelajari struktur dasar stored procedure T-SQL beserta parameter input dan output.
Struktur dasar stored procedure
T-SQL adalah dialek SQL yang dipakai SQL Server, dengan struktur CREATE PROCEDURE yang mirip namun punya sintaks tersendiri dibanding PL/SQL Oracle atau dialek MySQL.
CREATE PROCEDURE dbo.TambahPelanggan
@Nama NVARCHAR(100),
@Email NVARCHAR(150),
@PelangganId INT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO Pelanggan (Nama, Email)
VALUES (@Nama, @Email);
SET @PelangganId = SCOPE_IDENTITY();
END;
Memanggil prosedur dengan parameter output
DECLARE @IdBaru INT;
EXEC dbo.TambahPelanggan
@Nama = N'Rangga',
@Email = N'rangga@contoh.test',
@PelangganId = @IdBaru OUTPUT;
SELECT @IdBaru AS IdPelangganBaru;
SCOPE_IDENTITY() mengambil nilai identity yang baru saja dihasilkan dari INSERT di batch yang sama, lebih aman dibanding @@IDENTITY yang bisa terpengaruh trigger.
SET NOCOUNT ON
Baris SET NOCOUNT ON mencegah SQL Server mengirim pesan jumlah baris yang terpengaruh setelah setiap pernyataan, sehingga mengurangi lalu lintas jaringan yang tidak perlu antara aplikasi dan server.
Menangani error dengan TRY...CATCH
BEGIN TRY
BEGIN TRANSACTION;
-- pernyataan yang berpotensi gagal
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
THROW;
END CATCH;
Latihan
Tambahkan validasi di dalam prosedur TambahPelanggan agar melempar error kustom lewat THROW jika email sudah terdaftar sebelumnya.
