INSERT后无法SELECT @@ IDENTITY

时间:2014-12-18 14:55:09

标签: php sqlsrv

过去几个小时,这一直在煎我的大脑......

我在表格中插入一行,但我也想报告输入行的ID。

我表中的ID列设置为INT,Identity Specification设置为Yes。增量1和种子1.没什么不寻常的!

插入然后报告插入行的代码如下:

$sql = <<<SQL
INSERT INTO dbo.table (field1, field2)
VALUES (
'{$field1}',
'{$field2}'
); 
SELECT @@IDENTITY as id
SQL;

$result = sqlsrv_query($conn, $sql);

if($result === false){
    die(print_r(sqlsrv_errors(), true));
}
else{       
    sqlsrv_next_result($result);
    $row = sqlsrv_fetch_object($result);
    if($row === FALSE){
        die(print_r(sqlsrv_errors()));
    }
    print "Inserted: ".$row->id;
}

代码在if($row === FALSE)死亡,错误消息如下;

Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -28 [code] => -28 [2] => The active result for the query contains no fields. [message] => The active result for the query contains no fields. ) ) 1

INSERT正在运行!如果我在看到新输入的行后检查数据库。

*但是*

如果我打印正在创建的SQL并在Management Studio中手动运行它,那么insert语句在结果窗格中起作用,我看到一行数据,其列标题为id,其中包含刚刚创建的行的id

有谁知道这里发生了什么?

谢谢,

史蒂夫

0 个答案:

没有答案