Avatar billede reino Nybegynder
11. april 2002 - 00:04 Der er 8 kommentarer og
1 løsning

ODBC Error:Identity column 'id' contains invalid INCREMENT.

Spørgsmål:

Har et script der genererer en table, lyder som flg:

CREATE TABLE dbo.forhandler (
    id int IDENTITY (1, 1) NOT NULL ,
    navn varchar (255) NOT NULL ,
    adresse varchar (255) NULL ,
    land varchar (100) NULL ,
    tlf varchar (100) NULL ,
    fax varchar (100) NULL ,
    email varchar (100) NULL ,
    url varchar (100) NULL ,
    regionid int NOT NULL ,
    picture varchar (255) NULL ,
    aktiv tinyint NULL ,
    CONSTRAINT PK___7__10 PRIMARY KEY  CLUSTERED
    (
        id
    )
)

Når jeg så prøver flg:

INSERT INTO dbo.forhandler (id, navn, adresse, land, tlf, fax, email, url, regionid, picture, aktiv) VALUES (1, etc etc

får jeg flg fejl:

ODBC Error:Cannot insert explicit value for identity column in table 'forhandler' when IDENTITY_INSERT is set to OFF.

Som jeg ser problemet er det at man ikke kan "tvinge" id til et predefineret nummer, sikkert bare et spørgsmål om at sætte identity_insert til on :), but how ?
Avatar billede ocp Nybegynder
11. april 2002 - 00:13 #1
Du skal blot udelade "ID"-kolonnen og starte med navn - Ideen med identity er jo netop at der automatisk indsættes et nummer.
Bagefter kan du aflæse ID-værdien fra @@identity-variablen.
Avatar billede proaccess Nybegynder
11. april 2002 - 07:54 #2
Eller hvis du vil have mulighed for selv at bestemme numrene på dine forhandlere, så kan du vælge at bruge:

CREATE TABLE dbo.forhandler (
    id int NOT NULL ,
    navn varchar (255) NOT NULL ,
    ...

Så kan du selv indsætte dine numre...
Avatar billede proaccess Nybegynder
11. april 2002 - 07:59 #3
Har du egentlig prøvet med: 

  SET IDENTITY_INSERT tablename OFF

(bare et vildt gæt)
Avatar billede proaccess Nybegynder
11. april 2002 - 08:02 #4
Skulle selvfølgelig være:

  SET IDENTITY_INSERT tablename ON
Avatar billede terry Ekspert
11. april 2002 - 08:21 #5
-- Attempt to insert an explicit ID value of 3;

-- should return a warning.

INSERT INTO products (id, product) VALUES(3, 'garden shovel')

GO

-- SET IDENTITY_INSERT to ON.

SET IDENTITY_INSERT products ON

GO

 

-- Attempt to insert an explicit ID value of 3

INSERT INTO products (id, product) VALUES(3, 'garden shovel').

GO
Avatar billede proaccess Nybegynder
11. april 2002 - 08:24 #6
>Terry: Good old MSDN...
Avatar billede terry Ekspert
11. april 2002 - 08:25 #7
Books online! But what would we do without them? (books)
Avatar billede terry Ekspert
12. april 2002 - 20:43 #8
reino>hows it going here?
Avatar billede reino Nybegynder
21. april 2002 - 10:32 #9
Hi, sorry, been out a while. Proaccess example worked fine, thx :)
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