Editar datos de una geodatabase no versionada en SQL Server con SQL

Puede utilizar SQL para actualizar, insertar datos y eliminar datos de tablas no versionadas en la geodatabase si no participan en el comportamiento de la geodatabase. Consulte ¿Qué tipo de datos puede editarse con SQL? para obtener información sobre los tipos de datos y comportamiento de la geodatabase que no puede editar con SQL.

NotaNota:

Si la tabla no versionada que desea editar usando SQL está habilitada para archivado, debe editar la vista de archivo de la tabla en lugar de la propia tabla. La vista actualizará automáticamente ciertos campos mantenidos por ArcGIS. Consulte ¿Qué es una vista de archivo? y los temas relacionados para obtener más información.

Todos los datos que se registran con la geodatabase tienen un campo ObjectID (Id. de fila) único, no nulo, mantenido por el sistema. Cuando utiliza SQL para insertar registros en las tablas no versionadas en la geodatabase, debe proporcionar un valor único para ObjectID. Ejecute el procedimiento Next_RowID para obtener el siguiente valor ObjectID disponible. Después utilice ese valor en su sentencia INSERT para llenar el campo ObjectID para el registro.

NotaNota:

El próximo ObjectID disponible no es necesariamente el siguiente número secuencial después del último ObjectID insertado. Los ObjectID para algunas aplicaciones cliente se asignan en lotes, de modo que el siguiente ObjectID puede ser un número mucho mayor que el último que usó. Además, cualquier ObjectID del lote no utilizado se devuelve al grupo de valores disponibles, lo que significa que el siguiente valor de ObjectID disponible puede realmente ser un número menor que el último que insertó.

Este conjunto de instrucciones describe cómo actualizar una fila por vez en una tabla no versionada y cómo insertar un ObjectID. Posiblemente escribirá una rutina o un programa cliente para recuperar los ObjectID y actualizar los datos.

Pasos:
  1. Inicie sesión en un editor de SQL como el de Microsoft SQL Server Management Studio.

    Asegúrese de iniciar sesión en la base de datos como un usuario que tiene permiso para editar los datos.

  2. Ejecute el procedimiento almacenado Next_RowID para obtener un valor para el campo ObjectID.

    En este ejemplo, gisdata4 es el esquema en el que está almacenada la tabla farmland.

    DECLARE @id as integer
    EXEC dbo.next_rowid 'gisdata4', 'farmland', @id OUTPUT;
    SELECT @id "Next ObjectID";
    
    Next ObjectID
    423
    
  3. Utilice el valor devuelto de la declaración anterior para completar el campo ObjectID del registro que inserte.
    INSERT INTO gisdata4.farmland (objectid,crop,shape)
     VALUES (
      423,
      'oats',
      geography::STGeomFromText('POLYGON((-111.85897004 33.25178949,
    -111.86899617 33.25065270, -111.86887014 33.25062350,
    -111.85884555 33.25176951, -111.85897004 33.25178949))', 4267)
     );
    
  4. Puede continuar editando o, si ya terminó, puede confirmar las modificaciones en la base de datos.

Si la tabla contiene además un campo GUID o Id. global, también debe proporcionar un valor único para ese campo. Consulte Insertar un valor en una columna de Id. global en SQL Server con SQL para obtener más información.

Temas relacionados

5/10/2014