تالار گفتمان مانشت
نوشتن تابع در sqlserver - نسخه‌ی قابل چاپ

نوشتن تابع در sqlserver - ACM - 06 شهریور ۱۳۹۴ ۰۱:۱۸ ب.ظ

با سلام خدمت دوستان

میهواستم یه تابع سمت دیتابیس بنویسم که بیاد از یه جدول ، دو مقدار رو بگیره و در هم ضرب کنه ، و حاصل رو بریزه توی یه ستون جدید ، بعد هم از این تابع در ویژوال استفاده کنم

تازه کار هستم ، لطفا راهنمایی کنید که اصلا نوشتن تابع در sql چه طور هست ؟ کجاش باید بنویسم ؟ نحوه فراخوانی تابع ساخته شده در ویژوال توسط زبان Asp.net چه طور هست ؟

باتشکر قبلی

نوشتن تابع در sqlserver - One Minute - 06 شهریور ۱۳۹۴ ۰۳:۰۹ ب.ظ

خب این کار رو میتونی داخل شرط های کوئری ات بنویسی
مثلا اینجا یک کوئری میزنیم سن کاربر رو میخونیم ضربدر ۲ میکنیم میریم توی یک متغیر، بعد توی خط بعد اون متغیر رو وارد دیتابیس میکنیم :
result = SELECT user_age * 2 FROM users WHERE conditions
INSERT INTO users (user_new_age) VALUES (result)

یا اینکه میتونی این مقدار هارو از دیتابیس بخونی، توی کدهای پردازشیت عملیات رو انجام بدی و بعد درج کنی در دیتابیس

البته کدی که در بالا نوشتم برای PHP هستش، کاری نداره به سینتکس زبانی که میخوای تبدیلش کن.

RE: نوشتن تابع در sqlserver - amard - 12 شهریور ۱۳۹۴ ۰۱:۱۴ ق.ظ

(۰۶ شهریور ۱۳۹۴ ۰۳:۰۹ ب.ظ)One Minute نوشته شده توسط:  خب این کار رو میتونی داخل شرط های کوئری ات بنویسی
مثلا اینجا یک کوئری میزنیم سن کاربر رو میخونیم ضربدر ۲ میکنیم میریم توی یک متغیر، بعد توی خط بعد اون متغیر رو وارد دیتابیس میکنیم :
result = SELECT user_age * 2 FROM users WHERE conditions
INSERT INTO users (user_new_age) VALUES (result)

یا اینکه میتونی این مقدار هارو از دیتابیس بخونی، توی کدهای پردازشیت عملیات رو انجام بدی و بعد درج کنی در دیتابیس

البته کدی که در بالا نوشتم برای PHP هستش، کاری نداره به سینتکس زبانی که میخوای تبدیلش کن.
به نظرم حاصل دستور SELECT یه ستون هستش که توی متغیر result ذخیره شده . پس داخل متغیر result یه ستون داریم . دستور INSERT برای اضافه کردن یک یا چند رکورد به یه جدول استفاده میشه بنابر این نمیشه متغیر result که حاوی یک ستون هست رو با دستور INSERT استفاده کرد بنظرم اینجا باید از UPDATE استفاده کرد :
UPDATE users SET user_age=result
که این دستور ستون user_age رو با مقادیر result آپدیت میکنه .
البته من php کار نکردم وشاید دستور INSERT در این زبان نحوه عملکردش فرق بکنه ولی علی الاصول طبق قواعد SQL باید طبق توضیحی که عرض کردم باشه.

نوشتن تابع در sqlserver - One Minute - 12 شهریور ۱۳۹۴ ۰۲:۰۶ ق.ظ

(۱۲ شهریور ۱۳۹۴ ۰۱:۱۴ ق.ظ)amard نوشته شده توسط:  
(06 شهریور ۱۳۹۴ ۰۳:۰۹ ب.ظ)One Minute نوشته شده توسط:  خب این کار رو میتونی داخل شرط های کوئری ات بنویسی
مثلا اینجا یک کوئری میزنیم سن کاربر رو میخونیم ضربدر ۲ میکنیم میریم توی یک متغیر، بعد توی خط بعد اون متغیر رو وارد دیتابیس میکنیم :
result = SELECT user_age * 2 FROM users WHERE conditions
INSERT INTO users (user_new_age) VALUES (result)

یا اینکه میتونی این مقدار هارو از دیتابیس بخونی، توی کدهای پردازشیت عملیات رو انجام بدی و بعد درج کنی در دیتابیس

البته کدی که در بالا نوشتم برای PHP هستش، کاری نداره به سینتکس زبانی که میخوای تبدیلش کن.
به نظرم حاصل دستور SELECT یه ستون هستش که توی متغیر result ذخیره شده . پس داخل متغیر result یه ستون داریم . دستور INSERT برای اضافه کردن یک یا چند رکورد به یه جدول استفاده میشه بنابر این نمیشه متغیر result که حاوی یک ستون هست رو با دستور INSERT استفاده کرد بنظرم اینجا باید از UPDATE استفاده کرد :
UPDATE users SET user_age=result
که این دستور ستون user_age رو با مقادیر result آپدیت میکنه .
البته من php کار نکردم وشاید دستور INSERT در این زبان نحوه عملکردش فرق بکنه ولی علی الاصول طبق قواعد SQL باید طبق توضیحی که عرض کردم باشه.

با سپاس از توضیحی که دادید،
مطلبی که عرض کردید از نظر تئوری کاملا درست هست و طبق مباحث پایگاه داده به این صورت باید عمل کرد،
اما توجه داشته باشید که توی زبان های اسکریپتی مثل PHP ، نتیجه ی دستور SELECT که result هست یک متغیر نیست بلکه یک آرایه هست و با یک حلقه foreach میشه به راحتی روی عناصرش چرخید و ضرب و تقسیم یا هرکاری که دوستمون میخوام رو انجام داد و در نهایت از طریق وارد دیتابیس کرد،
البته شما درست میفرمایید بجای INSERT باید در انتها از دستور UPDATE استفاده کرد.
البته بهتره در انتهای دستور UPDATE از شرط WHERE استفاده کرد تا داده ها در مکان مناسب قرار بگیرند.
ممنونم

RE: نوشتن تابع در sqlserver - amirhosein71 - 26 بهمن ۱۳۹۴ ۰۴:۴۶ ب.ظ

(۰۶ شهریور ۱۳۹۴ ۰۱:۱۸ ب.ظ)ACM نوشته شده توسط:  با سلام خدمت دوستان

میهواستم یه تابع سمت دیتابیس بنویسم که بیاد از یه جدول ، دو مقدار رو بگیره و در هم ضرب کنه ، و حاصل رو بریزه توی یه ستون جدید ، بعد هم از این تابع در ویژوال استفاده کنم

تازه کار هستم ، لطفا راهنمایی کنید که اصلا نوشتن تابع در sql چه طور هست ؟ کجاش باید بنویسم ؟ نحوه فراخوانی تابع ساخته شده در ویژوال توسط زبان Asp.net چه طور هست ؟

باتشکر قبلی

تازگی ها من ابزار سئو رایگان که فارسی است آشنا شدم و کار می کنم ,کار کرد اون شبه به google analityc است لینک قرار دادم تا شما استفاده کنید

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.