View Full Version : Update کردن 3 رکورد با هم ..
ealireza
جمعه 08 مهر 1384, 17:07 عصر
سلام من اومدم نوشتم
Select top 3 *,id as 'IDX' From Tabel X
حالا مشکل اینجاست که میخواهم همون 3 رکورد رو مثلا Update کنم..
ولی وقتی دستور زیر رو مینویسم کار نمیکنه
Update Tabel Set Column1='NEW VALUE' Where id = x.IDX
اگه میشه راهنمایی کنید
در کل میخواهم هرچی که از تو سلکت انتخاب میشه بلافاصله UPDATE بشه ...
در یک Quire
لطفا اگه سوال تکراری بود قفل نکنید..
یا لینک مبحث قبل رو بزارید من گشتم پیدا نکردم
مرسی ..
Navid7h
جمعه 08 مهر 1384, 17:14 عصر
id as 'IDX'
این چیه؟یک ستون Identity که میخواهید شماره بزنه؟؟
آیا خود جدول شما یک ستون مشخصه Pk یا Identity Column ندارد؟؟؟
ealireza
جمعه 08 مهر 1384, 17:50 عصر
همون ID یک Identity Column هست که خودش KEY دیگه ..
توجه کنید که میخواهم اول رکورد ها نمایش داده شه بعد چاپ شه
id as 'IDX'
هم مثلا یک Alias بود ..
titbasoft
جمعه 08 مهر 1384, 18:45 عصر
از کد زیر استفاده کنید:
Update Tabel Set Column1='NEW VALUE' Where id IN (
Select top 3 id From Tabel X
)
توجه کنید که میخواهم اول رکورد ها نمایش داده شه بعد چاپ شهمنظورتون رو متوجه نشدم.
ealireza
جمعه 08 مهر 1384, 19:06 عصر
درسته ..
ولی اینو امتحان کرده بودم ...
میخواهم بصورت GRID هم نمایش داده بیشن ...
درکل برای یک سیستم تبلیغاتی میخواهم که 3 تا شانسی انتخاب کنه بعد به مقدار VISIT یک واحد اضافه کنه ..(برای هر ID که بطور شانسی انتخاب میشن)
ealireza
شنبه 09 مهر 1384, 15:39 عصر
CHERA KESI JAVAB NEMIDE ?
Achchan
یک شنبه 10 مهر 1384, 10:22 صبح
میخواهم بصورت GRID هم نمایش داده بیشن ...
Pardon me?! Data presentation is a disjoint subject than manipulating data! You can select and show it in previouse step ,lock the system for 5 seconds(for example) and then update what you want in last step.Why should you update within a select? I can't understand.
Do you want to lock some rows for "Read consistency"? If yes then think about Implicit Transactions.
Post more verbose information so maybe someone could help you.
-Good luck and feel free to mail me: baronc_rampantc@yahoo.ca
ealireza
یک شنبه 10 مهر 1384, 13:11 عصر
دقیقا متوجه نشدم ..
m-khorsandi
دوشنبه 11 مهر 1384, 10:25 صبح
درود
شما از Stored Procedure استفاده میکنید؟ اگه جواب مثبت هست دستورات(روش) دوستمون titbasoft رو بنویسید
و بعد از اون هم یه Select روی جدولتون بنویسید.
ealireza
چهارشنبه 20 مهر 1384, 21:53 عصر
میشه بیشتر توضیح بدین .. مرسی
titbasoft
چهارشنبه 20 مهر 1384, 23:36 عصر
create procedure myProc as
Update myTabel Set Column1='NEW VALUE' Where id IN (
Select top 3 id From Tabel X
)
Select * from myTable Where id IN (
Select top 3 id From Tabel X
)
GO
ealireza
پنج شنبه 21 مهر 1384, 11:38 صبح
احه مشکل اینجاست میخوام Order by = NewID()
باشه ..
AminSobati
پنج شنبه 21 مهر 1384, 23:28 عصر
select top 3 * into #TempTable from MyTable order by newid()
update MyTable set MyCol='new value'
where ID in (select id from #TempTable)
select * from #TempTable
drop table #TempTable
m-khorsandi
شنبه 23 مهر 1384, 09:26 صبح
شما میتونید Stored Procedure تون رو دو بخش کنید،
یک بخش Update کردن جدول و بخش دوم و آخر بدست آوردن رکوردهای مورد نیاز:
Update Tabel Set Column1='NEW VALUE' Where id IN (
Select top 3 id From Tabel X
)
Select * From Table_1
ealireza
شنبه 23 مهر 1384, 10:03 صبح
نمیشه چون
NewId()
هست و ترتیب خاصی وجود نداره ..
همون راه آقای ثباتی خوبه ولی بزرگترین مشکلش ساختن Temp هست که بنظر من منطقی نیست ..
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.