sql >> Database teknologi >  >> RDS >> Sqlserver

Overtrædelse af PRIMARY KEY constraint fejl SQL

Efter design, din tabel [cresql].[dbo].[AR_Transactions] formodes kun at indeholde én værdi for den primære nøgle - i dit tilfælde ser dette ud til at være en kombination af kolonner, der udgør denne PK.

Dette er ikke et SQL-problem, men ser ud til at være et designkoncept.

Du bør finde ud af, hvilken kombination af nøgler, der udgør din primære nøgle - det kan være, at designet siger, at du kan indsætte én gang og opdatere senere for den kombination (selvom jeg ikke ville betragte det som et godt design).

REDIGER

Da Trans_Id er PK, og du ikke bruger den kolonne i din indsættelse, indsættes den enten som IDENTITY, som STANDARD (brrrrr) eller bruger en TRIGGER.

IDENTITET: Tjek om IDENTITY-specifikationen er skruet sammen. Hvis ja, skal du bare nulstille den. Sådan Hvordan kan jeg gense en identitetskolonne i en T-SQL-tabelvariabel?

STANDARD: Dette er et mærkeligt valg, og du skal måske spørge den, der har designet databasen, læse dokumentationen eller bare finde ud af det på egen hånd. Under alle omstændigheder er dette et meget usædvanligt valg.

TRIGGER: Find udløseren og læs koden igennem for at se, hvad den gør. Sådan finder du en liste over triggere Hvad er den mest bærbare måde at kontrollere, om der findes en trigger i SQL Server?

Alternativt scenario:

Der kan være en trigger, der indsættes i en AUDIT-tabel, der kan have problemet. Tjek, om bordet har andre triggere, og se, hvad de gør.




  1. PostgreSQL Connection Pooling med PgBouncer

  2. Hvordan opdaterer jeg mysql database med ajax og php i innerhtml

  3. Sådan fjerner du tags i et tag PHP XML MYSQL GCIDE, mens du efterlader tekst

  4. SQL-ændringstabel