PDA

View Full Version : Stored Procedure



komeil64
یک شنبه 14 تیر 1388, 14:10 عصر
سلام
توی سایت خیلی گشتم که مثال هایی برای چهار عمل insert-edit-delete-select با روش Stored Procedure پیدا کنم
اما فقط در مورد اینزرت پیدا کردم
دوستان لطف می کنن نمونه ای از Stored Procedure ها رو اینجا قرار بدن؟یا منبع و لینک
ممنون

milade
یک شنبه 14 تیر 1388, 14:48 عصر
بیشتر توضیح بده !
اخه شما وقتی T-Sql یاد داشته باشی خوب SP نویسی هم اسونه دیگه ..
(این Insert ی که پیدا کردی رو اگه میتونی بزار )

raziee
یک شنبه 14 تیر 1388, 17:32 عصر
کد Insert , Delete , Update , Search

CREATE PROCEDURE JobIU
(
@JobCode Int,
@JobName Varchar(60)
)
AS
BEGIN
IF @JobCode=0
BEGIN
SET NOCOUNT ON;
INSERT INTO Job(JobName)
Values(@JobName)
END
ELSE
BEGIN
SET NOCOUNT ON;
UPDATE Job
SET
JobName=@JobName
WHERE JobCode=@JobCode
END
END
GO

CREATE PROCEDURE JobS
(@JobCode Int)
AS
BEGIN
IF @JobCode=0
BEGIN
SET NOCOUNT ON;
SELECT * FROM Job(NOLOCK)
END
ELSE
BEGIN
SET NOCOUNT ON
SELECT * FROM Job(NOLOCK)
WHERE JobCode=@JobCode
END
END
GO


CREATE PROCEDURE JobD
(@JobCode Int)
AS
BEGIN
SET NOCOUNT ON;
DELETE Job
WHERE JobCode=@JobCode
END
GO

hobab-theme
یک شنبه 14 تیر 1388, 17:44 عصر
جناب رضیی (اگر اشتباه تلفظ کردم واقعاً پوزش میخوام)
ممنون از نمونه ای که دادید
اگه براتون امکان داره بگید از همین روش چطور میشه جدولها را ایجاد و حذف کرد
ممنون

milade
یک شنبه 14 تیر 1388, 18:11 عصر
اگه براتون امکان داره بگید از همین روش چطور میشه جدولها را ایجاد و حذف کرد
یارو اومد سوال کنه یه چیز هم بده کار شد ! ;)

Drop Table <tableName>


موفق باشید

raziee
یک شنبه 14 تیر 1388, 18:53 عصر
چطور میشه جدولها را ایجاد و حذف کرد

من این کار رو بلد نیستم.
اگه بخواهیم پروسیجری داشته باشیم که یک جدول خاص با تعداد فیلد های مشخص و نوع داده مشخص رو اضافه کنیم و یا جدولی با نام مشخص رو حذف کنیم کاری نداره.
اما خوب می میخواهیم پروسیجری بسازیم که توانایی جدول سازی با تعداد فیلد های نا مشخص و همینطور نوع داده نا مشخص باشه.

-----

Drop Table <tableName>
میلاد عزیز میشه بیشتر توضیح بدین که به این وسیله چه جوری میشه جدولی رو پاک کرد(در پروسیجر)؟

در جواب جناب رضیئی باید بگم اگه متوجه شده باشند این سورس چیزی نداره !
یه مشت چک کردن پارامتر ها و ایجاد هست و شاید کد ساخت 2 خط بشه !

:گیج:
---------
همونطور که دوستمون جناب میلاد عزیز گفتند کد ساخت پروسیجر سادست.


CREATE PROC [EDURE] procedure_Name
[{@parameter data_type}
[VARYING] [ = default] [output]
]
[WITH
{RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION}]
[FOR REPLICATION]
AS sql_statement


برای مثال:


CREATE PROC sp_Select_City
AS
SELECT *
FROM t_City

یه پروسیجر که تمامی فیلد های جدول City رو بدون شرط و .... برمیگردونه

milade
یک شنبه 14 تیر 1388, 19:01 عصر
میلاد عزیز میشه بیشتر توضیح بدین که به این وسیله چه جوری میشه جدولی رو پاک کرد(در پروسیجر)؟
سلام
همون کدی که دادم دیگه ...
به جای <tablename> نام جدول رو بزار و تموم !

همونطور که دوستمون جناب میلاد عزیز گفتند کد ساخت پروسیجر سادست.
جناب رضیئی ! بنده قصد توهین به شما یا کدتون رو نداشتم ،
جانب اموزش عرض کردم
و فکر هم کردم تاپیک مال شماست که وقتی متوجه شدم اصلاح کردم .

با تشکر

milade
یک شنبه 14 تیر 1388, 19:09 عصر
راستی اینم ساخت جدول با رکود مشخص و نوع داده :

CREATE TABLE [dbo].[tbl_test] (
[f1] [int] IDENTITY (1, 1) NOT NULL ,
[f2] [datetime] NULL ,
[f3] [nvarchar] (50) NOT NULL ,

)
سعی کردم یه کد بنویسم که همه رو در بر بگیره .

موفق باشید

raziee
یک شنبه 14 تیر 1388, 19:54 عصر
همون کدی که دادم دیگه ...
به جای <tablename> نام جدول رو بزار و تموم !

دوست من. گویا بنده نتونستم پرسشم رو واضح بیان کنم.
اگر در پروسیجر بخواهیم با پارامتر ورودی جدولی ر. پاک کنیم چگونه باید این کار رو انجام بدیم.
یعنی نام جدول رو در زمان فراخوانی بدیم.نه اینکه یک پروسیجر بنویسیم که تنها یک جدول رو پاک کنه.(ساختن همچین پروسیجری به چه کاری میاد)
به این گفته من توجه بیشتری داشته باشین لطفا:


اگه بخواهیم پروسیجری داشته باشیم که یک جدول خاص با تعداد فیلد های مشخص و نوع داده مشخص رو اضافه کنیم و یا جدولی با نام مشخص رو حذف کنیم کاری نداره.
اما خوب می میخواهیم پروسیجری بسازیم که توانایی جدول سازی با تعداد فیلد های نا مشخص و همینطور نوع داده نا مشخص باشه.

raziee
یک شنبه 14 تیر 1388, 19:57 عصر
در ادامه دوست من اگه پارامتری رو با عنوان Table_Name داشته باشیم و بخواهیم در دستور

DROP Table @Table_Name

جدول رو پاک کنیم از پارامتر ورودی خطا میگیره.
نوع داده تعریف شده برای Table_Name چیست ؟ شما اطلاع دارید؟

milade
یک شنبه 14 تیر 1388, 20:13 عصر
یعنی نام جدول رو در زمان فراخوانی بدیم.نه اینکه یک پروسیجر بنویسیم که تنها یک جدول رو پاک کنه.(ساختن همچین پروسیجری به چه کاری میاد)
به این گفته من توجه بیشتری داشته باشین لطفا:
دوست عزیز پاک کردن یه جدول مثل select یه روال عادی نست ضمن اینکه معمولاً این کارا با T-Sql انجام میشه .

جدول رو پاک کنیم از پارامتر ورودی خطا میگیره.
نوع داده ای پارامتر چیه ؟
متن یا تصویر کامل خطا

raziee
یک شنبه 14 تیر 1388, 23:26 عصر
دوست عزیز پاک کردن یه جدول مثل select یه روال عادی نست ضمن اینکه معمولاً این کارا با T-Sql انجام میشه .

من هم میدونم.
قبلا سعی بر این کار داشتم ولی نشد.
از دوستی شنیدم که امکان پذیر نیست. من هم دنبال نکردم تا امروز که گفتم شاید شما بلد باشید.

hobab-theme
دوشنبه 15 تیر 1388, 01:29 صبح
میلاد جان Drop Table TableName رو من خودم هم میدونستم . من کاملاً با ساخت و حذف و ... جداول تو صفحه آشنا هستم فقط نمیدونستم چطور باید از طریق یک رویه این کار رو کرد که خودت لطف کردی و یه نمونه گذاشتی

یارو اومد سوال کنه یه چیز هم بده کار شد
نه ، به جز ویرایش شعر هم میگی:لبخند:
خوشم اومد
یا حق

komeil64
دوشنبه 15 تیر 1388, 16:55 عصر
از راهنمایی های همه دوستان ممنون
راستش من مثال های این نوع کد نویسی رو توی سی شارپ می خواستم
من همیشه کدامو اینطور می نوشتم که مثلا یه اینزرت معمولی بود و ولیوش مثلا یه تکست باکس بود
ممنون میشم راهنمایی کنین

milade
دوشنبه 15 تیر 1388, 17:29 عصر
راستش من مثال های این نوع کد نویسی رو توی سی شارپ می خواستم
سلام دوست عزیز
T-SQL خودش یه زبانه !

من همیشه کدامو اینطور می نوشتم که مثلا یه اینزرت معمولی بود و ولیوش مثلا یه تکست باکس بود
توصیه میکنم کتابهای اموزش پیشرفته SQL رو مطالعه کنید .

موفق باشید