/ / SQL Server: ¿qué puede hacer un procedimiento almacenado que una función definida por el usuario no puede hacer? - servidor sql, procedimientos almacenados, servidor sql-2000, funciones definidas por el usuario

SQL Server: ¿qué puede hacer un procedimiento almacenado que una función definida por el usuario no puede hacer? - servidor sql, procedimientos almacenados, servidor sql-2000, funciones definidas por el usuario

¿Puede decirme cuál es la necesidad de un procedimiento almacenado cuando hay UDF?

Respuestas

2 para la respuesta № 1

En 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.