webForumDet fria alternativet

IDENTITY_INSERT i MSSQL

4 svar · 194 visningar · startad av nanne

nanneMedlem sedan dec. 19991 749 inlägg
#1

Sitter här med mina forum och försöker koda om från mySQL till MSSQL.

När jag ska lägga till en nya post i databasen så får jag felmeddelandet

Warning: MS SQL message: An explicit value for the identity column in table 'artikel' can only be specified when a column list is used and IDENTITY_INSERT is ON. (severity 16) in e:\websites\lsi/newforum/artadm.php3 on line 219

Warning: MS SQL: Query failed in e:\websites\lsi/newforum/artadm.php3 on line 219

jag tittade i referensen och hittade hur man gör detta.

mssql_query("SET IDENTITY_INSERT artikel ON");
          $resadm=mssql_query("insert into artikel values (0,$Xpid,$Xfid,'$Xtitle',$Xartdate,'$UserName','$Xmsg','$Xname','$Xemail','')");

Problemet är att felet uppstår ändå. Måste man ha inställt något speciellt eller så?

------------------
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1 decoce
GCM/MU/IT$>AT d--- s: a-- C++$ UL P-- L++>++++ E W+++>$ N o-- K- w O- !M V?
PS++ PE- Y+ PGP-@ t+ 5 X+++ R* tv- b++ DI D++ G+ e* h++ r++ y+**@
------END GEEK CODE BLOCK------

[Redigerat av nanne den 03 aug 2001]

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Du måste ange kolumn-listan i insertstatementet i det här fallet


resadm=mssql_query("insert into artikel(kol1,kol2,kol3,kol4,kol5,kol6,kol7,kol8,kol9,kol10) values (0,$Xpid,$Xfid,'$Xtitle',$Xartdate,'$UserName','$Xmsg','$Xname','$Xemail','')");

------------------
essentitia preter non sans multiplicandum

nanneMedlem sedan dec. 19991 749 inlägg
#3

Hur fean får man indentity fältet att räknas upp ett snäpp när man gör insert då?

argh!...

------------------
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1 decoce
GCM/MU/IT$>AT d--- s: a-- C++$ UL P-- L++>++++ E W+++>$ N o-- K- w O- !M V?
PS++ PE- Y+ PGP-@ t+ 5 X+++ R* tv- b++ DI D++ G+ e* h++ r++ y+**@
------END GEEK CODE BLOCK------

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Man utelämnar den kolumnen helt och hållet från insert-statementet. Tex, om kol1 är identitykolumnen.

resadm=mssql_query("insert into artikel(kol2,kol3,kol4,kol5,kol6,kol7,kol8,kol9,kol10) values ($Xpid,$Xfid,'$Xtitle',$Xartdate,'$UserName','$Xmsg','$Xname','$Xemail','')");

och då behöver du inte mickla med identity_insert heller.

--------------------------------------------------------------------------------

------------------
essentitia preter non sans multiplicandum

nanneMedlem sedan dec. 19991 749 inlägg
#5

Grejt!... du har räddat min dag... Tack så mkt!

------------------
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1 decoce
GCM/MU/IT$>AT d--- s: a-- C++$ UL P-- L++>++++ E W+++>$ N o-- K- w O- !M V?
PS++ PE- Y+ PGP-@ t+ 5 X+++ R* tv- b++ DI D++ G+ e* h++ r++ y+**@
------END GEEK CODE BLOCK------

126 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)