Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Naruszenie ograniczenia PRIMARY KEY

To, co chcesz zrobić, to najpierw sprawdzić istniejący rekord, a jeśli nie istnieje, następnie dodaj nowy. Twój kod zawsze będzie próbował dodać nowy rekord. Zakładam, że używasz Linq2Sql (na podstawie 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przechowywanie obrazów w SQL Server?

  2. Przekonanie do regularnego serwisowania serwera SQL

  3. Przypisz wynik dynamicznego sql do zmiennej

  4. T-sql - określ, czy wartość jest liczbą całkowitą

  5. Zmień tryb podejrzany bazy danych SQL na tryb normalny za pomocą zapytania