PDA

View Full Version : منظورش از store procedure



Rsl_Mov
سه شنبه 17 مرداد 1391, 11:10 صبح
سلام خسته نباشید

دستورات مثل Select و Update و Delete و Insert کار کردم ولی توی ابزار store procedure چیه؟
مفاهیم store procedure؟
کاربرد store procedure؟

لطفا کامل توضیح دهید باتشکر

ali ghaemi
سه شنبه 17 مرداد 1391, 12:24 عصر
یک Sp مفهومی مانند FUNCTION در زبان های برنامه نویسی رو داره برای کپسوله کردن یک مجموعه از دستورات در یک ساختار نامدار استفاده می شه و تفاوت هایی هم با یک تابع تعریف شده در T-SQL داره مثلا
1 - یک رویه می تونه چند مقدار خروجی داشته باشه
2 - یک رویه می تونه عبارت RETURN رو بکار بگیره بدون اینکه ارزشی بعد RETURN تعیین شود
3-یک رویه الزاما مقداری رو بر نگرداند
4-در رویه می تواند از دستورات مربوط به کار با داده هم استفاده کرد INSERT ، UPDATE،DELETE . اما در FUNCTION فقط می توان از SELECT استفاده کرد
5-یک تابع تنها پارامتر های IN رو می پذیرد اما یک رویه علاوه بر IN می تواند پارامترهایی از نوع OUT یا INOUT رو هم شامل شود.

USE AdventureWorks2012;
GO
CREATE PROCEDURE HumanResources.uspGetEmployeesTest2
@LastName nvarchar(50),
@FirstName nvarchar(50)
AS

SET NOCOUNT ON;
SELECT FirstName, LastName, Department
FROM HumanResources.vEmployeeDepartmentHistory
WHERE FirstName = @FirstName AND LastName = @LastName
AND EndDate IS NULL;
GO

speralda
سه شنبه 17 مرداد 1391, 12:29 عصر
درود

در ادامه صحبتهای دوستمون

آشنایی با SP یاStored Procedure

SP: روالهای ذخیره شده در سرور sql

بعضی از افراد به spها، Precomplied Code هم میگویند(کدهای از پیش کامپایل شده)
در واقع spها مجموعه ای از دستورات T_SQL هستن که درون پایگاه داده توشط SQLSERVER ذخیره میشن و بعد از طریق نامشان اجرا میشن.

کاربرد: کنترل بهتر داده ها، دسترسی ساده تر به داده های پیچیده و افزایش سرعت.
در واقع ما توسط sp ها مجموعه ای از دستورات رو مینویسیم ولی به دفعات زیاد از آنها استفاده میکنیم.

با توجه به این تصویر فرق یک برنامه که از sp استفاده نکرده منوجه میشوید

90899

برنامه ای که از sp استفاده کرده

90900

فرمت کلی تعریف یک SP

CREATE PROCEDURE <sp_name>

Parameters_List -- اختياري
AS

SQL commands -- دستورات sql

مکان ذخیره شدن یک sp

روی DB مورد نظر راست کلیک > Programmability < Stored Procedures

یک مثال ساده

CREATE PROCEDURE sp_teacherInfo

AS

SELECT * FROM tbl_teacher

حالا برای اینکه این sp ساخته شود کافیست تمامی این کدها را انتخاب کرده و F5 بزنید یک پیغام به شما نشان میدهد مبنی بر اینکه با موفقیت sp شما ساخته شد.

چگونه sp را اجرا کنیم؟

یکی از این سه دستور
EXECUTE sp_teacherInfo -- نام sp شما
EXEC sp_teacherInfo
sp_teacherInfo -- تنها نام sp


حذف یک sp

DROP PROCEDURE sp_teacherInfo -- نام sp شما

merlin425
سه شنبه 17 مرداد 1391, 12:33 عصر
من شنبدم که store procedure یک بار کامپایل میشه و د دفعات بعد فقط فراخوانی و استفاده میشه این مورد درسته ؟

ولی با تمام این حسن ها یک دلیل مهم که من از sp استفاده میکنم sql builder هست که کار رو خیلی راحت میکنه :لبخند: