Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Execute Sp_executesql

Estas en el tema de Execute Sp_executesql en el foro de SQL Server en Foros del Web. buenas Estoy creando una funciona definida por el usuario y me está dando el siguiente problema: CREATE FUNCTION ... ... begin ... -- linea 67 ...
  #1 (permalink)  
Antiguo 20/02/2008, 12:48
 
Fecha de Ingreso: febrero-2008
Mensajes: 1
Antigüedad: 16 años, 2 meses
Puntos: 0
Execute Sp_executesql

buenas

Estoy creando una funciona definida por el usuario y me está dando el siguiente problema:

CREATE FUNCTION ...
...
begin
...
-- linea 67
EXECUTE SP_EXECUTESQL
@SQLInsert,
@SQL
...
end

Al ejecutar un select llamando a la funcion me da el siguiente error:
Servidor: mensaje 557, nivel 16, estado 2, procedimiento fTicket, línea 67
Desde una función sólo se puede ejecutar funciones y procedimientos almacenados extendidos.
¿Qué significa?, ¿No puedo usar el execute convariables locales dentro de una funcion?
Si es asi, ¿cómo puedo componer una sentencia SQL em tiempo de ejecucíón y que me devuelva las filas correspondientes?



gracias
  #2 (permalink)  
Antiguo 20/02/2008, 14:56
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Re: Execute Sp_executesql

Según sé, no es posible usar SQL dinámico dentro de una función definida por el usuario. Sin embargo, no logro encontrar una referencia en la documentación de Microsoft del motivo. Sin embargo, es fácil deducir algunos: Una UDF no debe modificar nada fuera de la función, pero dentro de un query dinámico pueden ocurrir update's o delete's. Con SQL dinámico, no podremos saber si la función es determinística o no.
  #3 (permalink)  
Antiguo 20/02/2008, 18:27
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: Execute Sp_executesql

No esta permitido ejecutar STORE PROCEDURE dentro de una funcion, solo funciones o bien extended store procedure.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:09.