IDENTITY_INSERT设置为OFF错误

时间:2015-07-28 11:06:20

标签: php sql-server

我试图通过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时。 ))

有人能告诉我如何解决这个问题或提供建议吗?

1 个答案:

答案 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));
}