Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 991843
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T06:10:23+00:00 2026-05-16T06:10:23+00:00

Please consider this sql statements Create table abc (A int, B int ) insert

  • 0

Please consider this sql statements

Create table abc 
(A int,
B int
)

insert into abc values (1,2)

Both of the below statements do the same thing. Why?

update abc 
set A = B,
B =0
where A=1

and

update abc 
set B =0,
A = B
where A=1

I was thinking that in the later statement B columns value is set first and then A columns’ value is set to B's value

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T06:10:24+00:00Added an answer on May 16, 2026 at 6:10 am

    No. Single update statements are atomic and there is no order in their individual parts.

    Both of these:

    update abc set A = B, B = 0 where A=1
    update abc set B = 0, A = B where A=1
    

    do exactly the same thing because the two assignments are considered to happen concurrently.

    In other words, B on the right side of = is the old value of B.


    Addendum: How a DBMS implements this behaviour depends on the cleverness of those writing the DBMS.

    For example a DBMS might attempt to lock all the rows where A is 1 then, once that’s done, go through and execute A = B, B = 0 (in that order because the execution engine deems that will satisfy concurrency, setting A to B before changing B) on each of those rows.

    A statement like set A = B, B = A would require somewhat more intelligence but it could do that easily enough by saving the current row first and using values there to set values in the new row, something like:

    read in oldrow
    copy oldrow to newrow
    newrow.A = oldrow.B
    newrow.B = oldrow.A
    write out newrow
    

    Then it will unlock all the rows.

    That’s just one option. A very dumb DBMS may just lock the entire database file although that wouldn’t make for very intelligent concurrency.

    A single-user, single-thread DBMS doesn’t have to care about concurrency at all. It would lock absolutely nothing, just going through each relevant row, making the changes.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

please consider this table: PK_Id Number Year Month Value ------------------------------------------------------------------------- 1 1 2000 5
Please consider this code: template<typename T> char (&f(T[1]))[1]; template<typename T> char (&f(...))[2]; int main()
please consider this image: I have a table like this: Age Active Men/Women -------------------------------------------------
Assuming I have a table like this one: CREATE TABLE user_delegates ( [id] INT
please consider this scenario: I have a table like this: ID City Status --------------------------------------
Please consider this table: ID Page Line C01 C02 C03 --------------------------------------------------------------------- 1 122 11
please consider this image: I have a table like this: Age Active Men/Women -------------------------------------------------
please consider this code : 1-... 2-{ 3-... 4-SqlConnection cn=new SqlConnection(); 5-... 6-} if
please consider this code : 1)public static class MyClass 2){ 3) public static DateTime
Please consider this site . I'm having trouble stretching the submenu list items in

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.