T-SQL

Princiales diferencias y ventajas : Consultas dinamicas con EXEC vs sp_executeSQL

EXEC vs sp_executeSQL

EXEC vs sp_executeSQL : En la actualidad, cuando programamos,quizas por facilidad o por desconocimiento usamos uno o el otro, pero sin saber claramente sun beneficios o deficiencias, entonces mediante  Transact SQL nos deja  ejecutar SQL dinamico(construir sentencias SQL dinamicamente para ejecutarlas en la base de datos) mediante dos metodos

  • EXEC o EXECUTE:Ejecuta una cadena de comandos o una cadena de caracteres dentro de un lote de Transact-SQL o uno de los siguientes módulos: procedimiento almacenado del sistema, procedimiento almacenado definido por el usuario, procedimiento almacenado CLR, función escalar definida por el usuario o procedimiento almacenado extendido. La instrucción EXECUTE se puede usar para enviar comandos de paso a través a los servidores vinculados. Adicionalmente, el contexto en el que se ejecuta una cadena o un comando se puede establecer de forma explícita. Los metadatos para el conjunto de resultados se pueden definir usando las opciones de WITH RESULT SETS.
  • SP_EXECUTESQL: Ejecuta una instrucción o lote Transact-SQL que puede volver a utilizarse muchas veces o uno que se ha generado de forma dinámica. La instrucción o el lote Transact-SQL puede contener parámetros incrustados.

    Important

  1. EXEC es una sentencia SQL
  2. EXEC no permite planes de ejecución
  3. EXEC no permite el uso de parametros abriendo la posibilidad ataques de SQL Injections
  4. EXEC no pueden usar el mecanismo de almacenamiento en caché cuando se crean tablas temporales
  5. SP_ExecuteSQL es un procedimiento almancenado
  6. SP_ExecuteSQL admite la sustitución de parámetros
  7. SP_ExecuteSQL genera planes de ejecución y estadisticas para mejorar el rendimiento de las consultas
  8. SP_ExecuteSQL no permite SQL Injections

EXECUTE

SP_EXECUTESQL

 

 

Deja una respuesta

WP to LinkedIn Auto Publish Powered By : XYZScripts.com