Toon posts:

[MSSQL] Probleem met verkrijgen van juiste ID

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met een probleem, ik wil via 1 query een aantal gegevens overladen van de ene naar de andere tabel en dit probeer ik op de volgende manier:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
INSERT INTO wandel_vereniging_test ( 
vereniging_regio, 
vereniging_bondsnr, 
vereniging_naam, 
vereniging_straat, 
vereniging_huisnr, 
vereniging_toevoeg, 
vereniging_postcode, 
vereniging_plaats, 
vereniging_telefoon, 
vereniging_email, 
vereniging_website 
) SELECT 
  vereniging_regio, 
  vereniging_bondsnr, 
  vereniging_naam, 
  vereniging_straat, 
  vereniging_huisnr, 
  vereniging_toevoeg, 
  vereniging_postcode, 
  vereniging_plaats, 
  vereniging_telefoon, 
  vereniging_email, 
  vereniging_website 
FROM wandel_vereniging_temp wvt 
WHERE wvt.vereniging_bondsnr NOT IN ( 
  SELECT vereniging_bondsnr FROM wandel_vereniging_test 
)

Als ik het zo probeer dan krijg ik de fout dat ik geen NULL in kan voeren in het veld vereniging_id, dit vond ik toch enigsinds vreemd aangezien dat veld de primary key is, en bij een eenvoudige insert wordt deze automatisch ingevuld wanneer die weg gelaten wordt bij de te inserten velden. Toen dacht ik, ok dan los ik het op door het id veld er wel bij te zetten en op te vullen met de query
code:
1
SELECT MAX(vereniging_id) + 1 FROM wandel_vereniging_test

Maar het lijkt erop dat ie dan bij het starten van de query dat id gaat gebruiken, en blijft gebruiken door de hele INSERT waardoor ik de fout krijg: "Cannot insert duplicate id" oid. Daarnaast heb ik nog even met @@IDENTITY zitten spelen, maar die geeft bij het starten van de query NULL, dus daar gaat het gelijk de mist in.

Ik heb hier toch al een paar uurtjes mee zitten klooien en ik kan niet echt voorbeelden van een soortgelijke constructie vinden dus vandaar dat ik hoop dat iemand hier mij kan helpen.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 12:34

gorgi_19

Kruimeltjes zijn weer op :9

Je kan Identity Insert tijdelijk uitzetten. Makkelijke methodiek: http://www.apexsql.com/sql_tools_diff.asp

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Als ik het zo probeer dan krijg ik de fout dat ik geen NULL in kan voeren in het veld vereniging_id, dit vond ik toch enigsinds vreemd aangezien dat veld de primary key is,
Als je die foutmelding krijgt lijkt het erop dat er geen IDENTITY is ingesteld voor de kolom vereniging_id in de tabel waarin je gaat inserten. Alleen Primary Key instellen is niet genoeg. Let erop dat dat niet meegenomen wordt als je een tabel kopieert. Je moet default values en ook IDENTITY weer opnieuw instellen.

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
Inderdaad de IDENTITY instellen. Thx Folks