Opciones de generación SQL avanzadas (Cuadro de diálogo)

Actualización: noviembre 2007

Permite controlar el modo en que se crean las instrucciones SQL o los procedimientos almacenados para un adaptador. El cuadro de diálogo aparece cuando hace clic en el botón Opciones avanzadas de la página Instrucciones SQL de uno de los asistentes de datos. Las opciones de este cuadro de diálogo se refieren a las instrucciones o procedimientos que se llaman como parte de un procedimiento de actualización (por ejemplo, CustomersTableAdapter.Update(DataTable)).

Lista de elementos de la interfaz de usuario

  • Generar instrucciones Insert, Update y Delete
    Cuando esta opción esté seleccionada, el asistente creará instrucciones SQL o procedimientos almacenados para los objetos UpdateCommand, InsertCommand y DeleteCommand del adaptador. (Los detalles de la instrucción o el procedimiento que se generen están controlados por el panel del asistente Elija un tipo de consulta). Si no está activada esta casilla, el resto de opciones del cuadro de diálogo estarán deshabilitadas, ya que no se aplicarán.

    Normalmente, esta casilla no se marca en las circunstancias siguientes:

    • El adaptador sólo se usará para leer datos de un origen de datos y no para escribirlos en él. Al desactivar esta casilla, se reduce la cantidad de código en el formulario o componente.

    • Los comandos se rellenarán manualmente una vez que el asistente termine.

    Si la casilla está desactivada y no hay instrucciones ni procedimientos almacenados para los objetos UpdateCommand, InsertCommand o DeleteCommand, llamar al método Update del adaptador de datos no hace nada.

  • Usar concurrencia optimista
    Cuando esta opción está seleccionada, el asistente genera un comando SQL con una cláusula WHERE que hace corresponder el valor de cada columna del registro que se está actualizando con el registro correspondiente de la base de datos.

    Nota:

    Esta opción sólo está disponible si la casilla Generar comandos Insert, Update y Delete está seleccionada.

    Por ejemplo, la sintaxis de una instrucción de actualización generada con esta opción seleccionada podría ser:

    UPDATE Customers
    SET CustomerID = ?, CompanyName = ?, Phone = ?
    WHERE (CustomerID = ?) AND (CompanyName = ?) AND 
          (Phone = ? OR ? IS NULL AND Phone IS NULL);
    

    Si esta casilla se deshabilita, la sintaxis sería:

    UPDATE Customers
    SET CustomerID = ?, CompanyName = ?, Phone = ?
    WHERE (CustomerID = ?)
    

    El efecto de comprobar cada valor de columna es que se produce un error en el comando si alguna de las columnas cambia, lo que sucede si otro usuario modifica el registro después de que se haya leído en el conjunto de datos. Si no se habilita la opción y la cláusula WHERE simplemente localiza el registro, la actualización puede reemplazar los cambios realizados por otros usuarios sin previo aviso.

    Para obtener más información sobre la comprobación de concurrencia cuando se actualiza desde un conjunto de datos, vea Introducción a la simultaneidad de datos en ADO.NET.

  • Actualizar la tabla de datos
    Cuando esta opción se encuentra seleccionada, el asistente genera una instrucción Select para todos los comandos Update e Insert.

    Nota:

    Esta opción sólo está disponible si la casilla Generar comandos Insert, Update y Delete está seleccionada.

    La instrucción Select se agrega al objeto de comando correspondiente del adaptador y se ejecuta inmediatamente después de que haya finalizado el comando Update o Insert. La instrucción Select se configura para devolver sólo un registro, concretamente la versión actualizada del registro que acaba de actualizarse.

    Nota:

    Se pueden agregar varias instrucciones a la propiedad CommandText de un objeto de comando del adaptador separándolas con un punto y coma (;).

    Al obtenerse una nueva versión del registro los valores de columnas actualizados se escriben en el conjunto de datos, incluidas:

    • Las columnas en las que la base de datos rellena un valor predeterminado.

    • Las columnas de incremento automático.

    • Las columnas de marca de hora.

    • Las columnas afectadas por el resultado de un desencadenador de bases de datos.

    Debido a que esta opción hace que se ejecuten dos instrucciones para cada actualización, la instrucción Update y una instrucción Select a continuación, su utilización puede resultar poco eficaz si se actualizan la mayoría de los registros de un conjunto de datos. En este caso, es más efectivo rellenar simplemente la tabla de datos completa de una vez después de realizadas todas las actualizaciones.

    Nota:

    Actualizar la tabla de datos sólo se admite en bases de datos compatibles con el procesamiento por lotes de instrucciones SQL. Por ejemplo, Microsoft Access no puede actualizar la tabla de datos en el mismo comando que realiza otras operaciones.

Vea también

Conceptos

Lo nuevo en datos

Información general sobre la presentación de datos

Otros recursos

Tutoriales sobre datos

Conectarse a datos en Visual Studio

Preparar la aplicación para recibir datos

Buscar datos en la aplicación

Mostrar datos en formularios en aplicaciones para Windows

Modificar datos en la aplicación

Validar datos

Guardar datos