Share via


Generar instrucciones en tiempo de ejecución

Actualizado: 5 de diciembre de 2005

La mayor parte de las aplicaciones de Microsoft SQL Server 2005 que necesitan generar instrucciones SQL dinámicamente en tiempo de ejecución lo hacen antes de llamar a una función o método de la API de bases de datos para ejecutar la instrucción. Por ejemplo, una aplicación del lenguaje C que usa ODBC puede generar dinámicamente una o varias instrucciones SQL en una matriz de caracteres y, a continuación, pasar esa matriz a las funciones de ODBC SQLPrepare o SQLExecDirect.

Transact-SQL admite las siguientes formas de generar instrucciones SQL en tiempo de ejecución en las secuencias de comandos Transact-SQL, procedimientos almacenados y desencadenadores:

  • Use el procedimiento almacenado del sistema sp_executesql para ejecutar una cadena Unicode. sp_executesql admite la sustitución de parámetros de forma similar a como se realiza en la instrucción RAISERROR.
  • Use la instrucción EXECUTE para ejecutar una cadena de caracteres. La instrucción EXECUTE no admite la sustitución de parámetros en la cadena ejecutada.
    ms178115.security(es-es,SQL.90).gifNota de seguridad:
    El uso de la instrucción EXECUTE para ejecutar una cadena facilita los ataques por inyección de código SQL. En su lugar, se recomienda utilizar sp_executesql con parámetros.

Vea también

Conceptos

Usar sp_executesql

Otros recursos

Inyección de código SQL
sp_executesql (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

5 de diciembre de 2005

Contenido modificado:
  • Se insertó una nota de seguridad sobre la inyección de código SQL.
  • Se eliminó un ejemplo de código.