Avatar billede svoeber Nybegynder
28. juli 2005 - 16:39 Der er 9 kommentarer

Slette den ene af to identiske rækker

Hej, jeg har fået et problem i en tabel på en MSSQL-server.
Der er flere rækker der ligger dobbelt i tabellen (det er sandsynligvis sket under en kopiering fra en anden database).

Mit problem er nu, at jeg ikke via Enterprice Manager kan slette den ene af de to rækker - jeg får en fejlbesked om: "Key column information is insufficient or incorrect. Too many rows were affected by update".

I MySQL ville jeg kaste en "DELETE FROM table WHERE ID = 123 LIMIT 1" efter den, men man kan jo ikke bruge LIMIT i MSSQL. Er der nogen, der har et forslag?
Avatar billede arne_v Ekspert
28. juli 2005 - 16:52 #1
er der ikke en primær nøgle du kan bruge ?
Avatar billede svoeber Nybegynder
28. juli 2005 - 16:54 #2
Nej, den er også duplikeret. :(
Avatar billede arne_v Ekspert
28. juli 2005 - 17:00 #3
en primær nøgle kan ikke være duplikeret

men jeg formoder at tabellen så er oprettet uden primærnøgle
Avatar billede arne_v Ekspert
28. juli 2005 - 17:01 #4
bedste bud er så at:
  - oprette en tabel magen til
  - INSERT SELECT fra den gamle til den nye med DISTINCT så du slipper af med
    duplikater
Avatar billede svoeber Nybegynder
28. juli 2005 - 17:12 #5
Jeg ved godt, en primær nøgle ikke burde kunne være duplikeret, men nu er det jo et Microsoft-produkt ;)
Jeg har sat kolonnen til at have "Identity = yes", hvilket jeg formoder er det samme som at sætte den til primær nøgle? Eller i hvert fald unik nøgle.
Jeg arbejder normalt i MySQL.

Jeg må prøve at selecte distinct og indsætte igen, hvis der ikke kommer en anden løsning op.
Avatar billede arne_v Ekspert
28. juli 2005 - 17:19 #6
SQLServer IDENTITY svarer til Access AutoNumber og MySQL AUTO_INCREMENT
Avatar billede svoeber Nybegynder
28. juli 2005 - 17:24 #7
Helt fint, så har jeg misforstået et par ting.
Kan man ikke sætte en kolonne til PRIMARY KEY med Enterprise Manager? Jeg kan selvfølgelig prøve at gøre det i ren SQL.
Avatar billede arne_v Ekspert
28. juli 2005 - 17:28 #8
Du kan næppe sætte en kolonne til primary key, hvis der allerede er
duplikater i tabellen.

Men du kan godt sætte primary key fra EM.
Avatar billede arne_v Ekspert
03. september 2005 - 18:46 #9
OK ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester