PDA

View Full Version : ساخت دستی StoredPrucedure



alonemm
دوشنبه 25 مرداد 1389, 09:22 صبح
با سلام:
آیا میشه به صورت کد نویسی و بدون اینکه بخایم از داخل sqlserver یک sp بسازیم و نام و پارامتر ها رو ارسال کنیم و به صورت داینامیک باشه و در sqlserver ذخیره نشه.
با تشکر.

Saber_Fatholahi
دوشنبه 25 مرداد 1389, 13:20 عصر
اره میشه
شما می تونی اونو ایجاد کنی
هر وقت خواستی فراخوانی کنی
و هر زمان نخواستی اونو توسط کد نویسی حذف کنی با دستور Drop
موفق باشی

alonemm
دوشنبه 25 مرداد 1389, 13:57 عصر
دوستان اگه مثال کاربردی دارند بزارند.
با تشکر.

salehbagheri
چهارشنبه 27 مرداد 1389, 14:19 عصر
دوست عزیز Sp زمانی معنی پیدا میکنه که داخل Database ذخیره شده باشه! در غیر اون صورت بهش Sp نمیگن!

شما یکبار کلمه Stored Procedures رو معنای لفظی کنید منظورم رو می فهمید.

روشی که شما دنبالشی اینقدر استفاده میشه که فکر نکنم نیاز به مثال زدن داشته باشه ولی این یک نمونه هست.


SqlCommand Cmd = new SqlCommand("SELECT * FROM NewTable", new SqlConnection("YourConnection"));

alonemm
چهارشنبه 27 مرداد 1389, 14:38 عصر
دوست عزیز Sp زمانی معنی پیدا میکنه که داخل Database ذخیره شده باشه! در غیر اون صورت بهش Sp نمیگن!

شما یکبار کلمه Stored Procedures رو معنای لفظی کنید منظورم رو می فهمید.

روشی که شما دنبالشی اینقدر استفاده میشه که فکر نکنم نیاز به مثال زدن داشته باشه ولی این یک نمونه هست.


SqlCommand Cmd = new SqlCommand("SELECT * FROM NewTable", new SqlConnection("YourConnection"));

دوست عزیز :
این روش رو که همه مبتدیان هم بلدند.
کاش کامل متن رو می خوندی بعد جواب میدادی.
گفتم ساختن sp به صورت داینامیک باشه که هم کوئری های سنگین و شرط ها رو با سرعت خود sp که بالاتر از همه هست اجرا بشه.
انجوری که شما گفتید توی کوئری های سنگین به مشکل برمیخوره و سایت کند میشه.
حالا اگه نظری دارید بفرمایید:
با تشکر.

salehbagheri
چهارشنبه 27 مرداد 1389, 15:16 عصر
گفتم ساختن sp به صورت داینامیک باشه که هم کوئری های سنگین و شرط ها رو با سرعت خود sp که بالاتر از همه هست اجرا بشه.
انجوری که شما گفتید توی کوئری های سنگین به مشکل برمیخوره و سایت کند میشه.

متوجه منظورتون نمیشم!
یعنی استفاده از Sp های از قبل ذخیره شده، در کارهای سنگین به مشکل میخوره؟ یا اینکه در حین عملیات یکبار اون Sp رو بسازیم و پس از استفاده حذفش کنیم؟

خب طبیعی هست که در حالت شما، دو وظیفه دیگه باید پردازش بشه (ساخت و پرداخت و حذف) پس نتیجه میگیریم که این کار خیلی سنگین تر تموم میشه! اینطور نیست؟

اما ساخت SP ها به صورت داینامیک به این صورت هست:


SqlCommand Cmd = new SqlCommand("CREATE PROCEDURE dbo.SelectTable AS SELECT * FROM NewTable", new SqlConnection("YourConnection"));


برای حذفش هم کافیه اینطور عمل کنید:


SqlCommand Cmd = new SqlCommand("DROP PROCEDURE dbo.SelectTable", new SqlConnection("YourConnection"));