PDA

View Full Version : سوال: update همزمان چند فیلد از n جدول؟



VisualBasic-NET
یک شنبه 21 آذر 1389, 09:31 صبح
سلام دوستان

می خواستم ببینم امکان این وجود داره که در یک کوری بتوان فیلدهای 2 یا n جدول را update کرد؟

(یا باید برای هرکدام یک کوری نوشت و جدا اجر شوند)

مرسی از لطف و جواب شما:چشمک:

حمیدرضاصادقیان
یک شنبه 21 آذر 1389, 09:54 صبح
برای update فیلدهای مختلف از چند جدول باید جداجدا نوشته شوند ولی میتوان چند فیلد از یک جدول رو مقادیرش رو Update کرد.

VisualBasic-NET
یک شنبه 21 آذر 1389, 10:09 صبح
مرسی اینطور را بلدم.

من جای خوندم که میشه این کار را انجام داد ولی هرچی میگردم فایلشا پیدا نمی کنم.

tooraj_azizi_1035
یک شنبه 21 آذر 1389, 10:11 صبح
سلام،
می شه با یک دستور Update چند جدول رو Update کرد:

UPDATE Table1, Table2 SET Table1.Field1 = "t", Table2.Field2 = "t";

Reza_Yarahmadi
یک شنبه 21 آذر 1389, 10:13 صبح
ميشه با توجه به اطلاعات چند جدول يك جدول رو آپديت كرد ولي نميشه چند فيلد از چند جدول مختلف رو توي يك دستور آپديت كرد.
احتمالا چيزي كه خونديد مورد اول بوده.
چيزي مثل كد زير

UPDATE dbo.Table2
SET dbo.Table2.ColB = dbo.Table2.ColB + dbo.Table1.ColB
FROM dbo.Table2
INNER JOIN dbo.Table1
ON (dbo.Table2.ColA = dbo.Table1.ColA);

tooraj_azizi_1035
یک شنبه 21 آذر 1389, 10:21 صبح
سلام،
می شه با یک دستور UPDATE چند فیلد از چند جدول رو UPDATE کرد، تست کنید.:عصبانی:



;UPDATE Table1, Table2 SET Table1.Field1 = "t", Table2.Field2 = "t", Table1.Field3 = 5

البته در قسمت WHERE اگر مقداری به یک فیلد از جدول انتساب بدهیم، در انتخاب رکورد از سایر جداول برای UPDATE تاثیر می گذارد.

Reza_Yarahmadi
یک شنبه 21 آذر 1389, 10:57 صبح
سلام،
می شه با یک دستور UPDATE چند فیلد از چند جدول رو UPDATE کرد، تست کنید.:عصبانی:



;UPDATE Table1, Table2 SET Table1.Field1 = "t", Table2.Field2 = "t", Table1.Field3 = 5

البته در قسمت WHERE اگر مقداری به یک فیلد از جدول انتساب بدهیم، در انتخاب رکورد از سایر جداول برای UPDATE تاثیر می گذارد.

نيازي به تست كردن نيست چون مسلما جواب نميده.
لطفا قبل از نوشتن كد از درست بودن اون مطمئن بشيد.

حمیدرضاصادقیان
یک شنبه 21 آذر 1389, 11:07 صبح
سلام،
می شه با یک دستور UPDATE چند فیلد از چند جدول رو UPDATE کرد، تست کنید.:عصبانی:



;UPDATE Table1, Table2 SET Table1.Field1 = "t", Table2.Field2 = "t", Table1.Field3 = 5

البته در قسمت WHERE اگر مقداری به یک فیلد از جدول انتساب بدهیم، در انتخاب رکورد از سایر جداول برای UPDATE تاثیر می گذارد.

آقا این موردی که شما میفرمائید اصلا در دستور update نیست.
اینم لینکش (http://msdn.microsoft.com/en-us/library/ms177523.aspx)

نه در 2000 نه در 2008 اصلا جواب نخواهد داد.

tooraj_azizi_1035
یک شنبه 21 آذر 1389, 11:07 صبح
سلام آقای صادقیان،
حقیقت اینه که من کد رو تو Access 2007 تست کردم و جواب داد و گفتم دستور SQL می تونه تو SQL Server هم جواب بده. من فعلاً دسترسی به SQL Server ندارم. اگه میشه دلیل رو بگید چون من هنوز دسترسی به SQL Server ندارم.

حمیدرضاصادقیان
یک شنبه 21 آذر 1389, 11:16 صبح
الزاما این نیست دستورات Access توی SQL هم جواب بده.چون ممکنه یک قابلیت خاص اون باشه.الان شما ساختار دستوری SQL Server رو نگاه کنید اصلا یک همچین چیزی توضیح داده نشده است.
عملا هم کاربرد خاصی نداره.
چون وقتی شما فیلتر انجام میدید از کجا میخواهید بهش بفهمونید که where اول برای جدول اول هست و where دوم برای جدول دوم.
چون مثلا ما میگیم


Where table1.Field1=10 and table2.field2=20

یعنی روی نتیجه کوئری ما این شرط رو اعمال کن نگفتیم از جدول اول فیلدهای برابر 10 رو بیار و از جدول دوم فیلدهای برابر 20.مگر اینکه یک Parser داشته باشه که بتونه این جمله رو تجزیه تحلیل کنه و خودش این شرط ها رو روی جداول مختلف اعمال کنه.

tooraj_azizi_1035
یک شنبه 21 آذر 1389, 11:27 صبح
درسته، در قسمت WHERE شرط یک فیلد در نمایش فیلد سایر جداول تاثیر دارد. این دستور UPDATE برای چند جدول بدون WHERE کار می کند اما با وجود WHERE رکوردهای نتیجه محدود می شوند و UPDATE انجام می شود.

m_omrani
یک شنبه 21 آذر 1389, 21:05 عصر
من چيزي که شخصاً مي دونم اينه که بين T-SQL و SQL فرق وجود داره. ممکنه Reference آقای تورج عزيزي، SQL بوده و Syntax رو از اون نوشتن. T-SQL فقط مخصوص SQL Server هستش. در T-SQL به نظرم UPDATE همزمان چندين جدول رو نداريم. ولي به نظرم مياد در برخي ديتابيس هاي ديگه داريم.

rroona
چهارشنبه 08 دی 1389, 16:02 عصر
برای update فیلدهای مختلف از چند جدول باید جداجدا نوشته شوند ولی میتوان چند فیلد از یک جدول رو مقادیرش رو Update کرد.

سلام
فرض کنید که دو جدول داریم.اگر مثلا دو تا از ستونهای یک جدول رو حذف کنیم و دو ستون با همان نام و همان نوع داده ای در جدول دیگر ایجاد کنیم ، چطور میتونیم مقادیر این دو ستون جدید را از جدول قبلی update کنیم؟

leghleghe
چهارشنبه 08 دی 1389, 19:04 عصر
با سلام من خيلي وارد نيستم ولي فكر ميكنم با نوشتن يه treager مشکلتون حل بشه