devxlogo

Swap the values of two columns

Swap the values of two columns

At times you may need to swap the values of two columns of the same SQL Server table. For example, suppose that you realized that the fname column of the Employee table contains the last name of each employee, and vice versa. Typically you do this from VB using a writeable cursor-based Recordset, as in:

Dim cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim tmp As Stringcn.Open "...your connect string..."rs.Open "Employee", cn, adOpenDynamic, adLockOptimistic, adCmdTableDo Until rs.EOF    tmp = rs("fname")    rs("fname") = rs("lname")    rs("lname") = tmpLooprs.Closecn.Close

However, you can take advantage of T-SQL and perform the same operation much faster, by executing it on the server (instead of the client) and without any explicit loop. This is possible thanks to T-SQL temporary variables and the capability to assign and use them inside an UPDATE statement. This is the T-SQL statement that performs the swap:

DECLARE @tmp VARCHAR(50)UPDATE employee SET @tmp=fname, fname=lname, lname=@tmpand this is the VB code that executes it:

cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Initial Catalog=pubs;Data " _    & "Source=(local)"cn.Execute "DECLARE @tmp VARCHAR(50)" & vbCrLf & _    "UPDATE employee SET @tmp=fname, fname=lname, lname=@tmp"

See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist