دسته بندی ها
02:30 1398/08/08

آپدیت لیستی از رکوردها در Sql Server - آپدیت گروهی اطلاعات در Sql Server

مشخصات سوال کننده :
کاربر : pedram_khan     امتیاز کاربر : 277     رتبه کاربر : 6
دسته بندی : Sql Server MySql Oracle MongoDB

به این سوال امتیاز بدهید    1
تعداد بازدید این سوال : 6291
هوش مصنوعی

پاسخ هوش مصنوعی

برای آپدیت گروهی رکوردها در SQL Server، می توانیم از ترکیب دستور UPDATE با FROM استفاده کنیم. در اینجا یک مثال برای آپدیت گروهی رکوردها با استفاده از جدول موقت آورده شده است:

UPDATE t
SET t.col1 = o.col1,
    t.col2 = o.col2
FROM Table AS t
INNER JOIN other_table AS o ON t.id = o.id
WHERE o.sql = 'cool'

در این کد، با استفاده از یک JOIN، دو جدول Table و other_table را به هم متصل می کنیم و فیلدهای مورد نظر را به روز رسانی می کنیم.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : Sowgandi 14:27 1398/08/08

سلام. در حالت آپدیت باید وقتی نام ستون رو آوردید مقدار رو هم بهش بدید و بعدا برید سراغ ستون بعدی. مانند زیر عمل کنید.

UPDATE Table SET col1 = (SELECT col1 FROM other_table WHERE sql = 'cool'),
 col2 = (SELECT col2 FROM other_table WHERE sql = 'cool')
WHERE Table.id = other_table.id

فقط در این حالت باید تعداد رکوردهای سلکت شده که داخل پرانتز قرار گرفته با تعداد سلکتی که در جدول اصلی قرار است آپدیت شود برابر باشد.

ویرایش شده در چهارشنبه 8 آبان 1398 ساعت 14:32:44
به این پاسخ امتیاز بدهید    2
امتیاز: 876 رتبه: 3
پاسخ دهنده : fateme 14:34 1398/08/08

شما می تونید برای استفاده از دستور Select  هنگام Update و یا آپدیت گروهی رکوردها در Sql Server به صورت زیر کار کنید :

 

UPDATE
    Table_A
SET
    Table_A.col1 = Table_B.col1,
    Table_A.col2 = Table_B.col2
FROM
    Some_Table AS Table_A
    INNER JOIN Other_Table AS Table_B
        ON Table_A.id = Table_B.id
WHERE
    Table_A.col3 = 'cool'

دستور بالا خیلی واضح این عملیات رو نمایش داده.

موفق باشید

به این پاسخ امتیاز بدهید    1
امتیاز: 1635 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود