我试图通过php在mssql db中插入值。我收到错误当IDENTITY_INSERT设置为OFF时,无法为标识列插入显式值。
我添加了查询行来设置IDENTITY_INSERT但仍然得到相同的错误。
我正在使用的代码在mssql db中插入值。
{{1}}
我得到错误:
数组([0] =>数组([0] => 23000 [SQLSTATE] => 23000 [1] => 544 [code] => 544 [2] => [Microsoft] [SQL Server Native Client 11.0] [SQL Server]无法在表中为identity列插入显式值 ' FKNarudzbeKupacaZaglavlje'当IDENTITY_INSERT设置为OFF时。 [message] => [Microsoft] [SQL Server Native Client 11.0] [SQL Server]无法在表中为identity列插入显式值 ' FKNarudzbeKupacaZaglavlje'当IDENTITY_INSERT设置为OFF时。 ))
有人能告诉我如何解决这个问题或提供建议吗?
答案 0 :(得分:1)
如果有人遇到类似的问题,我会发布解决方案:
$query2 = "SET IDENTITY_INSERT dbo.FKNarudzbeKupacaZaglavlje ON ";
$stmt2 = sqlsrv_query( $con, $query2);
if( $stmt2=== false ) {
die( print_r( sqlsrv_errors(), true));
}
$query = "INSERT INTO dbo.xxx([Id],[IdFirma], [VrstaDokumenta], [BrojDokumenta], [BrojDokumentaKroz],[DatumDokumenta], [IdKupac], [VrstaCijene], [IdKorisnik], [NacinPlacanja], [DatumZadnjeAkcije], [Status], [StatusArhive], [StatusIzmjene], [StatusStampe], [VrstaFakture])
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$params = array($id,$IdFirma,$VrstaDokumenta,$BrojDokumenta,
$BrojDokumentaKroz, $DatumDokumenta, $IdKupac, $VrstaCijene, $IdKorisnik,
$NacinPlacanja, $DatumZadnjeAkcije, $Status, $StatusArhive, $StatusIzmjene, $StatusStampe, $VrstaFakture);
/* Prepare and execute the statement. */
$stmt = sqlsrv_query( $con, $query, $params);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}