/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
"set identity insert on" virker ikke
Fra : Jimmy


Dato : 12-01-04 11:31

Hey

Har i et stykke tid kørt med en SQL, hvor jeg starter med "SET
IDENTITY_INSERT kal_gentagelse ON", kører min SQL, og slutter med "SET
IDENTITY_INSERT kal_gentagelse OFF".
Grunden til dette er at jeg har et felt ved navn id som jeg har sat til en
identity i Microsoft SQL Server. Feltet er ligeledes primær nøgle i
tabellen.

Dette virker af en eller anden grund ikke mere. Fejlen jeg får er "Cannot
insert explicit value for identity column in table 'kal_gentagelse' when
IDENTITY_INSERT is set to OFF". Det lyder bare mærkeligt i mine ører når
sekvensen er som følger:

"SET IDENTITY_INSERT kal_gentagelse ON"
"Insert into..."
"SET IDENTITY_INSERT kal_gentagelse OFF"

Nogen der har nogen ideer til hvad der er galt, for jeg er helt på bar bund
her???

--


Jimmy



 
 
Jens Gyldenkærne Cla~ (12-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 12-01-04 14:30

Jimmy skrev:

> Dette virker af en eller anden grund ikke mere. Fejlen jeg får
> er "Cannot insert explicit value for identity column in table
> 'kal_gentagelse' when IDENTITY_INSERT is set to OFF".

Er det hele fejlmeddelelsen?


> "SET IDENTITY_INSERT kal_gentagelse ON"
> "Insert into..."
> "SET IDENTITY_INSERT kal_gentagelse OFF"

Hvor kører du dine sql-kommandoer fra?
Hvordan ser resten af din insert-kommando ud?


> Nogen der har nogen ideer til hvad der er galt, for jeg er
> helt på bar bund her???

Et skud - du har ikke defineret hvilke kolonner dine værdier skal
indsættes i (det skal gøres ved identity-insert uanset om man giver
værdier til samtlige kolonner).
--
Jens Gyldenkærne Clausen
Do you solemnly swear to tell the error message, the whole error
message, nothing but the error message so help you God?

Jimmy (12-01-2004)
Kommentar
Fra : Jimmy


Dato : 12-01-04 19:11

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
news:Xns946E93950A729jcdmfdk@gyrosmod.dtext.news.tele.dk...
> Jimmy skrev:
>
> > Dette virker af en eller anden grund ikke mere. Fejlen jeg får
> > er "Cannot insert explicit value for identity column in table
> > 'kal_gentagelse' when IDENTITY_INSERT is set to OFF".
>
> Er det hele fejlmeddelelsen?

Nej der er lige lidt mere:

Microsoft OLE DB Provider for SQL Server fejl '80040e14'
Cannot insert explicit value for identity column in table 'kal_gentagelse'
when IDENTITY_INSERT is set to OFF.

c:\sti\filnavn, line 3094

>
>
> > "SET IDENTITY_INSERT kal_gentagelse ON"
> > "Insert into..."
> > "SET IDENTITY_INSERT kal_gentagelse OFF"
>
> Hvor kører du dine sql-kommandoer fra?

Jeg kører dem i ASP. Webserveren er en maskine for sig og SQL serveren kører
på en anden maskine.

> Hvordan ser resten af din insert-kommando ud?

"Insert into kal_gentagelse (id, felt1, felt2, felt3, felt4, felt5, felt6,
felt7, felt8, felt9, felt10, felt11) values (" & var_id & ",
Convert(datetime, ' " & var1 & " ', 105), Convert(datetime, ' " & var2 & "
', 105), " & var3 & ", '" & var4 & "', " & var5 & ", " & var6 & ", " & var7
& ", " & var8 & ", " & var9 & ", " & var10 & ", " & var11 & ")"

> > Nogen der har nogen ideer til hvad der er galt, for jeg er
> > helt på bar bund her???
>
> Et skud - du har ikke defineret hvilke kolonner dine værdier skal
> indsættes i (det skal gøres ved identity-insert uanset om man giver
> værdier til samtlige kolonner).

Ok, det vidste jeg ikke. Men jeg tror ikke at det er det der er problemet.
Hvad kan det ellers være?

Indtil videre tak for hjælpen :)


Jimmy



Jens Gyldenkærne Cla~ (12-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 12-01-04 23:51

Jimmy skrev:

> Microsoft OLE DB Provider for SQL Server fejl '80040e14'
> Cannot insert explicit value for identity column in table
> 'kal_gentagelse' when IDENTITY_INSERT is set to OFF.

O.k. - mit umiddelbare skud var ikke relevant.


>> > "SET IDENTITY_INSERT kal_gentagelse ON"
>> > "Insert into..."
>> > "SET IDENTITY_INSERT kal_gentagelse OFF"

> Jeg kører dem i ASP.

Har du prøvet at samle linjerne i en SP? Hvordan sender du
linjerne pt - i samme kommando eller i flere?
--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

Jimmy (13-01-2004)
Kommentar
Fra : Jimmy


Dato : 13-01-04 08:55

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
news:Xns946EF2A12F908jcdmfdk@gyrosmod.cybercity.dk...
> Jimmy skrev:
>
> >> > "SET IDENTITY_INSERT kal_gentagelse ON"
> >> > "Insert into..."
> >> > "SET IDENTITY_INSERT kal_gentagelse OFF"
>
> > Jeg kører dem i ASP.
>
> Har du prøvet at samle linjerne i en SP? Hvordan sender du

Jeg har ikke prøvet at samle dem i en SP, det prøver jeg lige.

> linjerne pt - i samme kommando eller i flere?

Jeg sender dem i flere

linkDB.Execute("SET IDENTITY_INSERT kal_gentagelse ON")
linkDB.Execute("insert into...")
linkDB.Execute("SET IDENTITY_INSERT kal_gentagelse ON")


Jimmy



Jens Gyldenkærne Cla~ (13-01-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 13-01-04 09:23

Jimmy skrev:

> Jeg sender dem i flere

Det er måske problemet - hvis de kører i hver deres batch
"overlever" identity-indstillingen måske ikke.

Prøv evt. at samle dem til ét kald.
--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

Jimmy (13-01-2004)
Kommentar
Fra : Jimmy


Dato : 13-01-04 10:15

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
news:Xns946F5F7DFB9F4jcdmfdk@gyrosmod.cybercity.dk...
> Jimmy skrev:
>
> > Jeg sender dem i flere
>
> Det er måske problemet - hvis de kører i hver deres batch
> "overlever" identity-indstillingen måske ikke.
>
> Prøv evt. at samle dem til ét kald.

Jeg har nu lavet en stored procedure

CREATE PROCEDURE [DBO].[sp_navn]
@var_id int,
@var1 nvarchar(10),
@var2 nvarchar(10),
@var3 int,
@var4 nvarchar(10),
@var5 bit,
@var6 bit,
@var7 bit,
@var8 bit,
@var9 bit,
@var10 bit,
@var11 bit
AS
SET IDENTITY_INSERT kal_gentagelse ON
Insert into kal_gentagelse (id, felt1, felt2, felt3, felt4, felt5, felt6,
felt7, felt8, felt9, felt10, felt11) values (@var_id, convert(datetime,
@var1, 105), convert(datetime, @var2, 105), @var3, @var4, @var5, @var6,
@var7, @var8, @var9, @var10, @var11)
SET IDENTITY_INSERT kal_gentagelse OFF
GO

Det lader til at identity indstillingen rent faktisk ikke overlever, men jeg
tør næsten sværge på at det har virket før. Din forklaring giver dog god
mening, og eftersom det virker nu, må det jo have været det der var
problemet.

Jeg takker endnu engang for din hjælp (Der ryger lige en "cyber-bajer" din
vej, skål) ;)


Jimmy



Peter Lykkegaard (13-01-2004)
Kommentar
Fra : Peter Lykkegaard


Dato : 13-01-04 13:45


"Jimmy" wrote in a message

> Det lader til at identity indstillingen rent faktisk ikke overlever,

Det er korrekt

> men jeg tør næsten sværge på at det har virket før.

Evt fordi du har fået startet en implicit transaction?

> Din forklaring giver dog god mening, og eftersom det
> virker nu, må det jo have været det der var problemet.

Det er "by design"
>
> Jeg takker endnu engang for din hjælp (Der ryger lige en "cyber-bajer" din
> vej, skål) ;)
>
Damn
Har du overvejet at åbne et udskænkningssted i cyberspace, man bliver jo
helt tørstig

- Peter



Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408509
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste