Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

checksum autogeneration

Posted on 2013-06-05
6
Medium Priority
?
509 Views
Last Modified: 2013-06-11
hi guys
I want to create a table Customer with 4 columns

Customer
Id Name Price Checksum


checksum value needs to be autopopulated when an insert occurs
and on update of that row the checksum should update aswell
does sql server provide any such feature?

I am using md5 checksum in my java front end , so that way i can check if the row already exists in the table.

thanks
0
Comment
Question by:royjayd
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
6 Comments
 

Author Comment

by:royjayd
ID: 39223207
experts,
Can anyone please help with this. I want to know if checksum can be calculated and saved for each row

thanks
0
 
LVL 66

Accepted Solution

by:
Jim Horn earned 800 total points
ID: 39223490
Define for us in standard English terms what you mean by 'checksum', keeping in mind that what I know about md5 and Java can be written on the back of a matchbook cover, in large letters, with a grease pencil.
0
 

Author Comment

by:royjayd
ID: 39223533
Thanks for responding..

By 'checksum' i mean a unique code for a row of data
So each row will have its own checksum or unique code.
I looked around and see that sql server has a checksum function so in my case for
above Customer table  it would be
CHECKSUM(Id,Name,Price);

how ever what i want to do is
when a new row is inserted into the Customer table create the CHECKSUM for it and insert it in the Checksum column
i tried something like

CREATE TABLE [ado].[CUSTOMER](
      [ID] [nvarchar](16) NULL,
      [Name] [nvarchar](100) NULL,
      [Price] [nvarchar](100) NULL,      
      [CheckSum] [nvarchar](100) DEFAULT CHECKSUM([ado].[CUSTOMER].ID,[CUSTOMER].Name,[CUSTOMER].Price)

but it doesnt seem to work.

Thanks
0
Veeam Disaster Recovery in Microsoft Azure

Veeam PN for Microsoft Azure is a FREE solution designed to simplify and automate the setup of a DR site in Microsoft Azure using lightweight software-defined networking. It reduces the complexity of VPN deployments and is designed for businesses of ALL sizes.

 
LVL 49

Assisted Solution

by:PortletPaul
PortletPaul earned 800 total points
ID: 39224366
you are attempting to avoid testing if a record does actually exist in the data persistence layer by using a calculation in the business logic layer

too many things could go wrong with this and I would not recommend it.

but hashbytes() will provide an MD5:
http://msdn.microsoft.com/en-us/library/ms174415.aspx

this can be coupled with "computed column" PERSISTED
http://msdn.microsoft.com/en-us/library/ms191250(v=sql.105).aspx

also ...
>>  [Price] [nvarchar](100) NULL,      
numeric data in nvarchar is generally a bad idea - it causes a great deal of overhead in all queries when adding/summing/filtering etc.
0
 

Author Comment

by:royjayd
ID: 39226871
the point of this excercise is i have two tables

TableA and TableB
with exact same number of columns but different data

TableA
col1 col2 col3  checksum

TableB
col1 col2 col3  checksum


Now TableA gets refreshed every 30 minutes with new data from a remote database table

The new data which arrived in TableA needs to be inserted in TableB.

So what i have in mind is if each row has its own checksum in both the tables,
compare the checksum for each row in TableA v/s TableB

The checksum(s) in TableA missing in TableB are the new rows, so add them to TableB


Do you think my approach is wrong ?

thanks
0
 
LVL 49

Expert Comment

by:PortletPaul
ID: 39227813
What I had in my mind when expressing the opinion before didn't involve table synchronization.

Other experts here will be far more experienced than I am on this table synchronization need
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

There have been several questions about Large Transaction Log Files in SQL Server 2008, and how to get rid of them when disk space has become critical. This article will explain how to disable full recovery and implement simple recovery that carries…
Naughty Me. While I was changing the database name from DB1 to DB_PROD1 (yep it's not real database name ^v^), I changed the database name and notified my application fellows that I did it. They turn on the application, and everything is working. A …
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…
In response to a need for security and privacy, and to continue fostering an environment members can turn to for support, solutions, and education, Experts Exchange has created anonymous question capabilities. This new feature is available to our Pr…

670 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question