Procedure (প্রোসিজার) হলো ডেটাবেসে একটি প্রোগ্রাম যেটি একাধিক স্টেটমেন্ট থেকে গঠিত এবং পরবর্তী ব্যবহারের জন্য সংরক্ষিত থাকে। SQL Server-এ প্রোসিজারে প্যারামিটার পাস করা যায়, যদিও ফাংশনের মতো নির্দিষ্ট রিটার্ন ভ্যালু দেয় না কিন্তু এক্সিকিউশন সফল বা ব্যর্থ সেটি ইন্ডিকেট করে।
এই নিবন্ধে SQL Server-এ প্রোসিজার তৈরি এবং ডিলিট করার সিনট্যাক্স এবং উদাহরণ দেওয়া হয়েছে।
CREATE PROCEDURE (প্রোসিজার তৈরি)
সিনট্যাক্স
SQL Server-এ প্রোসিজার তৈরি করার জন্য নিচের সিনট্যাক্স ব্যবহার করুন:
CREATE {PROCEDURE | PROC} [schema_name.] procedure_name
[@parameter [type_schema_name.] datatype
[VARYING] [= default] [OUT | OUTPUT | READONLY]
, @parameter [type_schema_name.] datatype
[VARYING] [= default] [OUT | OUTPUT | READONLY]]
[WITH {ENCRYPTION | RECOMPILE | EXECUTE AS Clause}]
[FOR REPLICATION]
AS
BEGIN
[declaration_section]
executable_section
END;
প্যারামিটার:
- schema_name: প্রোসিজার اهدায় থাকা স্কিমা (schema) নাম।
- procedure_name: প্রোসিজারের জন্য দেওয়া নাম।
- @parameter: ফাংশনে পাস করা এক বা একাধিক প্যারামিটার।
- type_schema_name: স্কিমার ডেটা টাইপ (যদি থাকে)।
- datatype: @parameter-এর ডেটা টাইপ।
- default: @parameter-এ এসাইন করা ডিফল্ট মান।
- OUT/OUTPUT: @parameter একটি আউটপুট প্যারামিটার।
- READONLY: @parameter প্রোসিজার দ্বারা ওভাররাইড করা যাবে না।
- ENCRYPTION: প্রোসিজারের সোর্স কোড সিস্টেমে টেক্সট হিসেবে সংরক্ষিত হবে না।
- RECOMPILE: এই প্রোসিজারের জন্য কোয়েরি ক্যাশ (cache) করা হবে না।
- EXECUTE AS clause: প্রোসিজার এক্সিকিউশনের সিকিউরিটি কনটেক্সট নির্দিষ্ট করে।
- FOR REPLICATION: সংরক্ষিত প্রোসিজার শুধু রেপ্লিকেশন প্রসেস চলাকালীন এক্সিকিউট হবে।
উদাহরণ
CREATE PROCEDURE spNhanvien
@nhanvien_name VARCHAR(50) OUT
AS
BEGIN
DECLARE @nhanvien_id INT;
SET @nhanvien_id = 8;
IF @nhanvien_id < 10
SET @nhanvien_name = 'Smith';
ELSE
SET @nhanvien_name = 'Lawrence';
END;
উপরের প্রোসিজারটির নাম spNhanvien, একটি প্যারামিটার আছে @nhanvien_name, যা আউটপুট প্যারামিটার এবং এর আউটপুট @nhanvien_id-এর উপর ভিত্তি করবে।
তারপর, আপনি spNhanvien রেফারেন্স করতে পারেন নিচের মতো:
USE [test]
GO
DECLARE @site_name varchar(50);
EXEC FindSite @site_name OUT;
PRINT @site_name;
GO
DROP PROCEDURE (প্রোসিজার ডিলিট)
সফলভাবে প্রোসিজার তৈরি হলে, ডেটাবেস থেকে প্রোসিজার মুছে ফেলার প্রয়োজনও পড়তে পারে।
সিনট্যাক্স
প্রোসিজার মুছে ফেলার জন্য নিচের সিনট্যাক্স ব্যবহার করুন:
DROP PROCEDURE procedure_name;
প্যারামিটার:
procedure_name: ডিলিট করতে চাওয়া প্রোসিজারের নাম।
উদাহরণ
DROP PROCEDURE spNhanvien;
এই কমান্ড এক্সিকিউট করলে আপনি ডেটাবেস থেকে spNhanvien প্রোসিজার মুছে ফেলেছেন।