Hur stänger jag temporärt av autoincrement i en existerande tabell? Prova istället att skapa en ny tabell med samma struktur fast ditt id-fält inte är autoinc. Kopiera sedan över datat och därefter sätter du på räknaren via ADOX eller en sql-sats. Jag läste inte ordentligt, tog för givet att det var en SQL-server. Hur som helst: På SQL-server är det detta som gäller om man vill skriva till identity-kolumnen Testa att kör en insert fråga. Har för mig att det går. Vet däremot inte om det bara går om tabellen är tom.Autoincrement/Räknare
Detta vill jag göra för att kopiera över vissa rader från en annan tabell.
OBS! Dessa två tabeller har helt olika strukturer...
Eller finns det något annat sätt att sätta in de id jag själv vill fast autoincrement är true???
Jag skapar en tabell PeriodontalEx med primärnyckeln PeriodontalExID
som jag sätter autoincrement till True.
Jag vill temporärt sätta denna till false för att kopiera över vissa rader från en annan tabell, för att behålla samma id som de raderna hade i den gamla tabellen - den gamla tabellen har inte samma struktur som den nya. Sedan vill jag sätta tillbaks autoincrement till true eftersom jag vill använda det för nya rader som skapas.
Dim aCol As New ADOX.Column
Dim aTable As ADOX.Table
Dim adoxCat As ADOX.Catalog
Set adoxCat = New ADOX.Catalog
adoxCat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " & "C:\Databaser\Databas.MDB" & ";"
Set aTable = adoxCat.Tables("PeriodontalEx")
aCol.Name = "PeriodontalExId"
aCol.ParentCatalog = adoxCat
aCol.Properties("AutoIncrement") = False
' I vanliga fall gör man aTable.append acol men kolumnen finns redan.........
Set aCol = Nothing
Set aTable = NothingSv: Autoincrement/Räknare
/PelleSv: Autoincrement/Räknare
SET IDENTITY_INSERT [ database. [ owner. ] ] { table } { ON | OFF }
glöm inte bort att slå på identity igen efter er.
/johan/Sv: Autoincrement/Räknare