Estoy trabajando en un programa para exportar los datos de una vista que contiene un tipo de geometría en Sql Server 2008, para un ArcSDE tabla en otro servidor que también almacena los datos utilizando el tipo de geometría. La base de datos de origen no se está ejecutando de ArcSDE. Esta será una noche de trabajo.
Siguiendo la documentación en el enlace de abajo, yo soy capaz de generar un IDENTIFICADOR de Objeto con cada nueva inserción:
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/in_SQL_Server/006z00000017000000/
Mi problema (si es de hecho un problema) es antes de copiar archivos entre los dos servidores, lo primero que eliminar todos los elementos en la tabla de destino mediante una instrucción SQL:
DELETE FROM target_table_name
Sin embargo, al insertar el primer registro después de la eliminación, el ObjectID comienza en el siguiente valor más alto desde antes, cuando he eliminado de la tabla. Por ejemplo, vamos a asumir que la mayor ObjectID en la mesa antes de que borre fue de 1000. Tras eliminar el contenido de la tabla, y comenzar a cargar los nuevos datos, el nuevo ObjectID de la dbo.i_get_ids procedimiento almacenado devuelve es 1001. Cada carga tiene alrededor de 100.000 registros y ya que este se ejecuta por la noche, el id de objeto puede convertirse en un gran valor con bastante rapidez. Mi pregunta es, hay alguna manera de restablecer el valor? Si yo uso el siguiente código de ArcObjects para truncar la tabla de la ObjectID se restablece a cero:
((ITable)targetTable).DeleteSearchedRows(null);
Sin embargo, si hay una manera de hacer esto sin ArcObjects, sería preferible.