Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Нарушаване на ограничението PRIMARY KEY

Това, което искате да направите, е първо да проверите за съществуващия запис и ако не съществува, след това добавете нов. Вашият код винаги ще се опитва да добави нов запис. Предполагам, че използвате Linq2Sql (въз основа на 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. Управление на MDF файлове в SQL Server 2019

  2. SQL Server 2008 - Как да върна дефиниран от потребителя тип таблица от функция с стойност на таблица?

  3. Как да вмъкнете прекъсване на ред в низ VARCHAR/NVARCHAR на SQL Server

  4. Неуспешно актуализиране на база данни .mdf, защото базата данни е само за четене (приложение за Windows)

  5. Изтриване на SQL Server – Премахване на един или повече редове от таблица с леко напреднали сценарии