Stored Procedure হল SQL Server-এ একাধিক SQL স্টেটমেন্টের একটি গ্রুপ যা ডেটাবেসে সংরক্ষিত থাকে এবং প্রয়োজনে পুনরায় এক্সিকিউট করা যায়। Stored Procedure তৈরি করা হয় যখন আপনি বার বার একই কোড ব্যবহার করতে চান বা একটি নির্দিষ্ট কাজ একাধিক স্থানে চালাতে চান। এটি কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি করে এবং ডেটাবেস পরিচালনাকে সহজতর করে।
Stored Procedure এর মৌলিক সিনট্যাক্স
CREATE PROCEDURE ProcedureName
AS
BEGIN
-- SQL স্টেটমেন্ট
END;
- CREATE PROCEDURE: স্টোরড প্রসিডিউর তৈরি করার জন্য ব্যবহার করা হয়।
- ProcedureName: এটি স্টোরড প্রসিডিউরের নাম।
- AS: এর মাধ্যমে SQL কোড ব্লক শুরু হয়।
- BEGIN...END: একাধিক SQL স্টেটমেন্টকে একত্রে রাখতে ব্যবহৃত হয়।
উদাহরণ ১: সাধারণ Stored Procedure তৈরি
ধরা যাক, আপনি একটি স্টোরড প্রসিডিউর তৈরি করতে চান যা Employees টেবিল থেকে সমস্ত ডেটা রিটার্ন করবে।
CREATE PROCEDURE GetAllEmployees
AS
BEGIN
SELECT * FROM Employees;
END;
এটি একটি সাধারণ স্টোরড প্রসিডিউর তৈরি করবে যা Employees টেবিল থেকে সব রেকর্ড নির্বাচন করবে। একবার এই স্টোরড প্রসিডিউরটি তৈরি হলে, আপনি এটি কল করে ডেটা নিতে পারবেন।
Stored Procedure কল করা:
EXEC GetAllEmployees;
উদাহরণ ২: Stored Procedure এর সঙ্গে প্যারামিটার ব্যবহার
আপনি যদি চান যে স্টোরড প্রসিডিউরটি নির্দিষ্ট মানের উপর ভিত্তি করে কাজ করুক, তাহলে আপনি Input Parameters ব্যবহার করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো যেখানে EmployeeID প্যারামিটার ব্যবহার করা হয়েছে:
CREATE PROCEDURE GetEmployeeDetails
@EmployeeID INT
AS
BEGIN
SELECT Name, Position FROM Employees WHERE EmployeeID = @EmployeeID;
END;
এখানে @EmployeeID একটি ইনপুট প্যারামিটার যা স্টোরড প্রসিডিউরের কল করার সময় মান হিসেবে প্রদান করতে হবে।
Stored Procedure কল করা:
EXEC GetEmployeeDetails @EmployeeID = 101;
এই কুয়েরিটি EmployeeID 101 থাকা কর্মচারীর নাম এবং পদ রিটার্ন করবে।
উদাহরণ ৩: Multiple Parameters সহ Stored Procedure
আপনি একাধিক প্যারামিটারও স্টোরড প্রসিডিউরে ব্যবহার করতে পারেন। নিচে একটি উদাহরণ দেয়া হলো যেখানে Name এবং Position প্যারামিটার ব্যবহার করা হয়েছে:
CREATE PROCEDURE GetEmployeeByPosition
@Position VARCHAR(50),
@MinSalary DECIMAL
AS
BEGIN
SELECT Name, Position, Salary
FROM Employees
WHERE Position = @Position AND Salary >= @MinSalary;
END;
এটি স্টোরড প্রসিডিউর তৈরি করবে যা পজিশন এবং মিনিমাম বেতনের ভিত্তিতে কর্মচারীর ডেটা রিটার্ন করবে।
Stored Procedure কল করা:
EXEC GetEmployeeByPosition @Position = 'Developer', @MinSalary = 50000;
এই কুয়েরি শুধুমাত্র তাদের নাম, পদ এবং বেতন রিটার্ন করবে যারা Developer পজিশনে আছেন এবং তাদের বেতন ৫০,০০০ বা তার বেশি।
উদাহরণ ৪: Stored Procedure-এ Error Handling
T-SQL এ TRY...CATCH ব্লক ব্যবহার করে আপনি স্টোরড প্রসিডিউরের মধ্যে ত্রুটি হ্যান্ডলিংও যোগ করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো:
CREATE PROCEDURE InsertEmployee
@Name VARCHAR(100),
@Position VARCHAR(50),
@Salary DECIMAL
AS
BEGIN
BEGIN TRY
INSERT INTO Employees (Name, Position, Salary)
VALUES (@Name, @Position, @Salary);
END TRY
BEGIN CATCH
PRINT 'Error: ' + ERROR_MESSAGE();
END CATCH;
END;
এটি একটি স্টোরড প্রসিডিউর তৈরি করবে যা Employees টেবিলে নতুন কর্মচারী ইনসার্ট করার চেষ্টা করবে। যদি কোনো ত্রুটি ঘটে, তবে তা ERROR_MESSAGE() এর মাধ্যমে ধরা যাবে এবং ত্রুটির বার্তা প্রিন্ট হবে।
Stored Procedure কল করা:
EXEC InsertEmployee @Name = 'John Doe', @Position = 'Manager', @Salary = 70000;
উদাহরণ ৫: Output Parameters সহ Stored Procedure
আপনি Output Parameters ব্যবহার করতে পারেন যা স্টোরড প্রসিডিউরের শেষে মান রিটার্ন করতে সহায়তা করে। নিচে একটি উদাহরণ দেওয়া হলো:
CREATE PROCEDURE GetEmployeeCount
@Position VARCHAR(50),
@EmployeeCount INT OUTPUT
AS
BEGIN
SELECT @EmployeeCount = COUNT(*)
FROM Employees
WHERE Position = @Position;
END;
এটি একটি স্টোরড প্রসিডিউর তৈরি করবে যা নির্দিষ্ট পজিশনের জন্য কর্মচারীর সংখ্যা রিটার্ন করবে।
Stored Procedure কল করা:
DECLARE @Count INT;
EXEC GetEmployeeCount @Position = 'Developer', @EmployeeCount = @Count OUTPUT;
PRINT @Count;
এই কুয়েরি Developer পজিশনের কর্মচারীর সংখ্যা রিটার্ন করবে এবং সেটি @Count ভেরিয়েবলে স্টোর হবে, যা পরবর্তীতে প্রিন্ট করা হবে।
সারাংশ
- Stored Procedure একটি ডেটাবেস অবজেক্ট যা একাধিক SQL স্টেটমেন্টের গ্রুপ হিসেবে কাজ করে এবং এটি পুনরায় ব্যবহারের জন্য সংরক্ষিত থাকে।
- CREATE PROCEDURE কমান্ড ব্যবহার করে আপনি স্টোরড প্রসিডিউর তৈরি করতে পারেন।
- স্টোরড প্রসিডিউরকে ইনপুট, আউটপুট, বা ইনপুট/আউটপুট প্যারামিটার সহ কাস্টমাইজ করা যায়।
- TRY...CATCH ব্লক ব্যবহার করে ত্রুটি হ্যান্ডলিং যোগ করা সম্ভব।
- OUTPUT প্যারামিটার ব্যবহার করে মান রিটার্ন করা সম্ভব।
Stored Procedure ডেটাবেস অ্যাপ্লিকেশনে কোডের পুনরাবৃত্তি কমায়, পারফরম্যান্স উন্নত করে এবং নিরাপত্তা বাড়ায়।
Read more