¿Puede decirme cuál es la necesidad de un procedimiento almacenado cuando hay UDF?
Respuestas
2 para la respuesta № 1En la parte superior de mi cabeza, un procedimiento almacenado puede hacer lo siguiente que no puede hacer un UDF:
1) Modificar datos
2) Devolver un conjunto de resultados a un cliente
3) Realizar actividad no determinista.
1 para la respuesta № 2
Se puede ejecutar un procedimiento. DML
, una función no puede.
En general, una función está diseñada para ser utilizada como parte de la consulta, mientras que un procedimiento almacenado es un lote de SQL
las declaraciones se ejecutan juntas implementando cierta lógica de negocios, posiblemente con diferentes credenciales.
1 para la respuesta № 3
Una función no puede alterar o actualizar directamente labase de datos de cualquier manera, ya sea a través de declaraciones DML (INSERT, UPDATE, DELETE, ect) o DDL (CREATE TABLE, etc.). Tampoco puede hacer nada que pueda dar como resultado indirectamente modificaciones en la base de datos, como ejecutar sentencias de SQL ad-hoc (de cualquier tipo) o ejecutar procedimientos almacenados.
1 para la respuesta № 4
Una diferencia clave es que las UDF siempre tienen una salida de esquema fijo, los procedimientos almacenados pueden resultar en un número arbitrario de conjuntos de resultados en un formato arbitrario.
0 para la respuesta № 5
Los Sprocs se utilizan para devolver la salida a una aplicación. Un UDF devuelve una variable de tabla.