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

  • Home
  • SEARCH
  • 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 97071
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 10, 20262026-05-10T23:56:04+00:00 2026-05-10T23:56:04+00:00

I’m upsizing an existing MS Access backend to SQL Server 2008 and, because we

  • 0

I’m upsizing an existing MS Access backend to SQL Server 2008 and, because we want to use SQL Server Merge replication, I’ll have to change all current primary keys (currently standard autoincrement integers) to GUID.

So here are the questions:

  • Any recommendation on doing the change of primary keys from integer to GUID?
  • Any recommendation on using and manipulating the GUID from code from within Access clients?
  • Which SQL Server GUID type should I use?
  • 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. 2026-05-10T23:56:05+00:00Added an answer on May 10, 2026 at 11:56 pm

    Chris is right when saying that (1) you do not need GUIDS for merge replication and (2) there is only one GUID type, but you have to know that:

    1. GUIDS can be generated following different rules. You can check this here
    2. When setting a replication, SQL will systematically add a GUID (generated as a newsequentialid) to each table if it does not already exist, and will call it rowguid. Of course, if you already have such a GUID/newSequentialId in each table, SQL will make use of it. BUt I do not advise you to ‘mix’ replication GUIDs with PK GUIDs: you could declare all your primary keys of the GUID type as ‘newSequentialIds’, but (a) you would then loose the possibility to generate GUID values on the client’s side – see infra – and (b) your PKs will then be ‘predictable’, and this idea makes me feel uncomfortable…
    3. keeping autoincrement integers and managing their range through replication means a lot of overhead (you have to allocate ranges for each table/each publication) and a potential source of conflicts when replicating from different sources.
    4. Moreover, some SQL bugs like this one, which is specific to range allocation, are still not properly solved: applying cumulative pack 5 did not solve our problem and we had to find another way to restart our replication processes.
    5. Anyway, I am deeply convinced that switching from integers to GUIDs as primary keys is mandatory. There are many reasons for that, and one of them is linked to these range management as a potential source for headacke and overnight troubleshouting sessions.

    Concerning the change from integers to GUIDS, I advise you to write a step-by-step module that will:

    • Backup up all existing tables before modifying them
    • Add a GUID field to each table
    • Add corresponding FK fields where requested
    • Update FK fields through views built with the existing relations (built on integer fields)
    • Break relations
    • Change PKs from integer fields to GUID fields
    • Recreate relations

    Take your time to write this code. You will use it many times before having it properly working. You should make profit of the DAO object, tabledefs, indexes, and so on. Keep in mind that you must allways be able to go back to the starting point, so don’t forget the initial backup process.

    What about manipulating GUIDs from VBA? There are a few things to know about that:

    • GUIDs are of the Variant type
    • It is possible and easy to generate your GUID as primary key on the client’s side of the app, as I proposed it once here.
    • When you try to get a GUID value from a control in a form (usually as the linked field in a combobox), you’ll get ‘?????’but no value. You have to refer to the field value in the recordset to get the correct data. You can open such a form in your app, go to the ‘immediate’ window, and try this:

    ? myForm.myControl ?????  ? myForm.recordset.fields('myFieldName') {000581EB-9CBF-418C-A2D9-5A7141A686CC} 
    • You might have to convert your guids to strings when navigating through recordsets with expressions such as recordset.findfirst:

    myFirstRecordset.FindFirst 'stringFromGUID(myGuidId) = ' & StringFromGUID(mySecondRecordset.Fields('myGuidId').Value) 
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 64k
  • Answers 64k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • added an answer From this you conclude that the indexer on a list… May 11, 2026 at 10:42 am
  • added an answer Preferences → Privacy → remove individual cookies They are grouped… May 11, 2026 at 10:42 am
  • added an answer No, you don't. Synthesized properties are added to class A… May 11, 2026 at 10:42 am

Related Questions

I keep getting tasks that are above my skill level. How can I address this without coming accross as grossly incompetent?
I have a web-service that I will be deploying to dev, staging and production.
I'm thinking of starting a wiki, probably on a low cost LAMP hosting account.
I have the following tables in my database that have a many-to-many relationship, which
I'm using the RESTful authentication Rails plugin for an app I'm developing. I'm having
I recently printed out Jeff Atwood's Understanding The Hardware blog post and plan on
I find that getting Unicode support in my cross-platform apps a real pain in
I would like to test a string containing a path to a file for
I'm getting this problem: PHP Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Unable
I'm an Information Architect and JavaScript developer by trade nowadays, but recently I've been

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

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.