ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Ayuda
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plataforma de representación cartográfica para tu organización

ArcGIS Desktop

Un completo SIG profesional

ArcGIS Enterprise

SIG en tu empresa

ArcGIS Developers

Herramientas para crear aplicaciones basadas en la ubicación

ArcGIS Solutions

Plantillas de aplicaciones y mapas gratuitas para tu sector

ArcGIS Marketplace

Obtén aplicaciones y datos para tu organización.

  • Documentación
  • Soporte
Esri
  • Iniciar sesión
user
  • Mi perfil
  • Cerrar sesión

ArcMap

  • Inicio
  • Introducción
  • Cartografiar
  • Analizar
  • Administrar datos
  • Herramientas
  • Extensiones

Next_RowID

  • Definición
  • Sintaxis
  • Tipo de devolución
  • Ejemplos

Definición

Next_RowID toma una tabla que esté registrada con la geodatabase como un parámetro de entrada y devuelve el siguiente valor para el campo ObjectID (RowID).

Puede utilizar este valor cuando inserta una fila en la tabla con SQL.

Se devuelve un error si la tabla que especifique no está registrada con la geodatabase.

Sintaxis

<geodatabase administrator schema>.next_rowid (<table owner>, <table name>)

En la mayoría de las geodatabases,el esquema del administrador de la geodatabase es sde. Sin embargo, en geodatabases de esquema dbo en SQL Server es dbo y en geodatabases de esquema de usuario en Oracle es el nombre del esquema del usuario.

Tipo de devolución

Entero

Ejemplos

Los siguientes son ejemplos del uso de la función Next_RowID en cada tipo de bases de datos compatibles.

En el primer ejemplo, se inserta un registro en la tabla aplicants que es propiedad de webman y llama el procedimiento Next_RowID para insertar un valor en el campo RowID (ObjectID). En Db2 y SQL Server, debe llamar al procedimiento Next_RowID primero para obtener un valor para el campo ObjectID y, después, utilizar ese valor en la sentencia de inserción.

En el segundo ejemplo se intenta insertar un registro en la tabla de inicios de sesión, llamando el procedimiento Next_RowID para insertar un valor en un campo denominado ID. Sin embargo, la tabla de inicios de sesión no está registrada con la geodatabase; por lo tanto, se devuelve un error.

Db2

En Db2, los procedimientos almacenados no se pueden utilizar directamente en una sentencia de inserción. Por lo tanto, debe llamar el procedimiento Next_RowID para obtener el valor para el siguiente RowID y después utilizar ese número en la sentencia de inserción.

CALL sde.next_rowid('WEBMAN', 'APPLICANTS', ?, ?, ?);
Value of output parameters
----------------------------
Parameter Name :   O_ROWID
Parameter Value :  30
Parameter Name :   O_MSGCODE
Parameter Value :  0
Parameter Name :   O_MESSAGE
Parameter Value :  Procedure successfully completed.
Return Status = 1
INSERT INTO webman.applicants (objectid, app_name, status)
VALUES
(30, 'Roy Bean', 'active')
The SQL command completed successfully

En este ejemplo, la tabla no está registrada con la geodatabase, de manera que no se devuelve un valor de ID:

CALL sde.next_rowid('WEBMAN', 'LOGINS', ?, ?, ?);
Value of output parameters
----------------------------
Parameter Name :   O_ROWID Parameter Value :  -
Parameter Name :   O_MSGCODE Parameter Value :  -20169
Parameter Name :   O_MESSAGE Parameter Value :  No SDE ROWID column.
Return Status = 1

Oracle 11g

INSERT INTO webman.applicants (objectid, app_name, status) VALUES
(sde.gdb_util.next_rowid('WEBMAN', 'APPLICANTS'), 'Roy Bean', 'active');
1 row created
COMMIT;
INSERT INTO webman.logins (id, l_name) VALUES 
(sde.gdb_util.next_rowid('WEBMAN', 'LOGINS'), 'maplebutter');
(sde.gdb_util.next_rowid('WEBMAN', 'LOGINS'), 'maplebutter');
 *
ERROR at line 3:
ORA-20220: Class WEBMAN.LOGINS not registered to the Geodatabase.

PostgreSQL

INSERT INTO webman.applicants (objectid, app_name, status) VALUES
(sde.next_rowid('webman', 'applicants'), 'Roy Bean', 'active')
Query returned successfully: 1 row affected, 109 ms execution time.
INSERT INTO webman.logins (id, l_name) VALUES 
(sde.next_rowid('WEBMAN', 'LOGINS'), 'maplebutter')
Notice: Class webman.logins not registered to the Geodatabase.

SQL Server

Cuando se utiliza el procedimiento almacenado Next_RowID en SQL Server, debe obtener el siguiente valor de ID de fila y luego insertar ese valor cuando inserte un registro en la tabla.

DECLARE @myval int EXEC sde.next_rowid 'mgr', 'customers', @myval OUTPUT SELECT @myval "Next RowID";
Next RowID
3188
INSERT INTO webman.applicants (objectid, app_name, status) VALUES
(3188, 'Roy Bean', 'active');
Query returned successfully: 1 row affected, 109 ms execution time.

Si intenta ejecutar el procedimiento Next_RowID para una tabla que no está registrada con la geodatabase, recibirá un mensaje de error, como se muestra en el siguiente ejemplo:

DECLARE @myval int;
EXEC sde.next_rowid 'mgr', 'inventory', @myval OUTPUT;
SELECT @myval "Next RowID"
Msg 50000, Level 16, State 1, Procedure next_rowid, Line 16
Class inventory not registered to the Geodatabase.

Temas relacionados

  • RowID_Name

ArcGIS Desktop

  • Inicio
  • Documentación
  • Soporte

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Acerca de Esri

  • Quiénes somos
  • Empleo
  • Blog de Esri
  • Conferencia de usuarios
  • Cumbre de desarrolladores
Esri
Díganos su opinión.
Copyright © 2021 Esri. | Privacidad | Legal