如何通过sqlsrv扩展名调用@@ IDENTITY来获取结果?

时间:2013-12-18 11:29:18

标签: php sql-server-2008 sqlsrv

我有一些SP(存储过程),如:

ALTER PROCEDURE [dbo].[PROC_INSERT_ELEMENTS]
@IN_OWNER_CLASS_ID  int
AS
INSERT INTO [dbo].[ELEMENTS] (OWNER_CLASS_ID)  VALUES (@IN_OWNER_CLASS_ID)
RETURN @@IDENTITY

还有一些PHP函数,要调用这个SP:

function createEmptyElement($class){
$conn = l_connection::db_connect();
$proc_query = '{ call PROC_INSERT_ELEMENTS ( @IN_OWNER_CLASS_ID=? ) }';
$params = array(
array(&$class->ID, SQLSRV_PARAM_IN),
       );
$resource=sqlsrv_query($conn, $proc_query, $params);
sqlsrv_next_result($resource);
sqlsrv_fetch($resource);
var_dump(sqlsrv_get_field($resource, 0));

我想在ID表中获取ELEMENTS新创建的行,但我不能这样做,因为@@IDENTITY不会返回行(我认为)。

哦,我不能改变SP。

0 个答案:

没有答案