sql >> Database >  >> RDS >> Sqlserver

Overtreding van de PRIMARY KEY-beperking

Wat u wilt doen is eerst controleren op het bestaande record, en als het niet bestaat, dan voeg een nieuwe toe. Uw code zal altijd proberen een nieuw record toe te voegen. Ik neem aan dat je Linq2Sql gebruikt (gebaseerd op de InsertOnSubmit )?

public void Subscribe(string clientID, Uri uri)
{
    using(clientsDBDataContext clientDB = new clientsDBDataContext())
    {
        var existingClient = (from c in clientDB.clientURIs
                              where c.clientID == clientID
                              select c).SingleOrDefault();

        if(existingClient == null)
        {
            // This is a new record that needs to be added
            var client = new ServiceFairy.clientURI();
            client.clientID = clientID;
            client.uri = uri.ToString();
            clientDB.clientURIs.InsertOnSubmit(client);
        }
        else
        {
            // This is an existing record that needs to be updated
            existingClient.uri = uri.ToString();
        }
        clientDB.SubmitChanges();
    }
}


  1. De database kan niet worden geopend omdat het versie 782 is. Deze server ondersteunt versie 706 en eerder. Een downgradepad wordt niet ondersteund

  2. CONVERT() vs TRY_CONVERT in SQL Server:wat is het verschil?

  3. Zoeken toont alle producten

  4. Hoe MariaDB op Rocky Linux en AlmaLinux te installeren?