Ran into the age old problem of migrating data from one system into a new system where new system requires a unique row id but the previous system does not. In the scerario, I am moving 400,000 records across a linked server from SQL 2000 to SQL 2005/2008. Generating a rowID per row is expense in any type of cursor or While Loop for 1/2 million records. Using the 2005/2008 Rank() function I managed to migrate 400,000 records in under 3 minutes with the linked server connection running over internet through my home cable modem connection. Not too bad at all.
SELECT rank() OVER (ORDER BY fPat.PatientID, fMrn.MRN) as RowID
FROM [FRIS].FRIS_DB.[dbo].tbPatients fPat
INNER JOIN MRIS.[dbo].W_PATIENT mPat ON mPat.Pat_Id = fPat.PatientID
INNER JOIN [FRIS].FRIS_DB.[dbo].tbMRN fMrn ON fMrn.PatientID = fPat.PatientID
No comments:
Post a Comment