ورود

View Full Version : دیتابیس stored procedure



csharpspider
چهارشنبه 02 اسفند 1391, 16:11 عصر
سلام بچه ها
بچه ها فرض کنیم یک دیتابیس داریم با دو تا تیبل
Table1
Table2
Table1 داری 3 تا فیلد است / UserID(int) / UserName(nvarchar) / UserFamily(nvarchar)
Table2 داری 3 تا فیلد است / TID(int) date(datetime) UserID(int)
در تیبل1 UserID(int) کلید است
در تیبل2 TID(int) کلید است
من در درون ویژوال استدیو یعنی پروژم میخواهم در دیتابیسم یک (stored procedure) درست کنم که عمل سلکت انجام بده
به این صورت


CREATE PROCEDURE Table2_Select


SELECT TID, date, UserID FROM Table2
ولی در آخر میخواهم از دستور (WHERE) استفاده کنم
یعنی انتخاب کن SELECT TID, date, UserID FROM Table2
تا زمانی که UserID تیبل1 با UserID تیبل2 برابر باشه
یعنی من باید یک متغیر بسازم
بعد از این همه توضیحات سوال من این است که من چطوری متغیر UserID برای تیبل1 را بسازم



CREATE PROCEDURE Table2_Select


(


@UserID int


)


AS


SELECT TID, date, UserID FROM Table2


WHERE UserID = @UserID
در اینجا متغیر @UserID برای جدول تیبل2 است ولی من میخواهم متغیر @UserID برای تیبل1 باشه
هدف من هم این است که تا زمانی که UserID تیبل2 برابر با UserID تیبل1 باشه عمل سلکت را انجام بده
منتظر دوستان هستم

havakili
پنج شنبه 03 اسفند 1391, 14:35 عصر
سلام دوست عزیزم
من دقیقا متوجه منظورتون نشدم
ولی اگه بیشتر توضیح بدی میتونم کمکت کنم
من با اس کیو ال زیاد کار کردم
هدفت از این چک کردن جز اینکه میخوای وجود این کاربر رو در جدول کاربر ها چک کنی
واسه این کار بهتره از join ها استفاده کنی

اینو ببین
بهتره اسم فیلد date رو عوض کنی من این کار رو کردم

خوب حالا این انتخاب رو اجرا کن

SELECT Table2.TID, Table2.date_user,Table2.UserID
FROM Table2 INNER JOIN
Table2 ON Table1.UserID = Table2.UserID
این جوری مشکلت حل میشه

csharpspider
شنبه 05 اسفند 1391, 02:56 صبح
سلام دوست عزیزم
من دقیقا متوجه منظورتون نشدم
ولی اگه بیشتر توضیح بدی میتونم کمکت کنم
من با اس کیو ال زیاد کار کردم
هدفت از این چک کردن جز اینکه میخوای وجود این کاربر رو در جدول کاربر ها چک کنی
واسه این کار بهتره از join ها استفاده کنی

اینو ببین
بهتره اسم فیلد date رو عوض کنی من این کار رو کردم

خوب حالا این انتخاب رو اجرا کن

SELECT Table2.TID, Table2.date_user,Table2.UserID
FROM Table2 INNER JOIN
Table2 ON Table1.UserID = Table2.UserID
این جوری مشکلت حل میشه

دوست من راستشو بخای من یک دیتالیست دارم که داخلش یک دیتالیست دیگه داره / چون داخل دیتالیسته تو فرم لود نمیاره تا با کد پرش کنم / و مجبورم فقط یک دیتاسورس درست کنم براش / درنتیجه نه لینک میشه نه کدنویسی / به همین خاطر فقط راهش درست کردن دیتاست و دیتاآداپتوره و داخلش درست کردن کوری سلکت و کد جوین که گفتی / ولی من وقتی در این روش جوین درست کردم کار میکنه ولی همه فیلدها رو میاره / دیگه فیلتر نمیکنه / مثلا من میخوام همه تیبل2 رو بیاره بشرطی که UserID تیبل2 با UserID تیبل1 مساوی باشه / یعنی فقط سطرهایی که UserID مساوی UserID تیبل1 است انتخاب کنه / میشه یک بار دقیق این مثالی که گفتم رو درست کنی یک بار دیگه بزنم ببینم درست میشه؟؟؟؟

csharpspider
سه شنبه 08 اسفند 1391, 22:44 عصر
نظری ندارید؟؟؟؟؟؟؟

محمد سلیم آبادی
پنج شنبه 10 اسفند 1391, 08:52 صبح
می تونید یک نمونه داده همراه با نتیجه مورد نظر را در قالب جدول در اینجا قرار بدین و چگونگی تولید نتیجه مورد نظر را شرح بدین؟