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

Error Invalid use of en funciones de SQL

Estas en el tema de Error Invalid use of en funciones de SQL en el foro de SQL Server en Foros del Web. Hola que tal, bueno el motivo de este msj es para solicitarles su ayuda con una funcion con la cual tengo problemas. Les explico a ...
  #1 (permalink)  
Antiguo 16/10/2008, 21:39
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Exclamación Error Invalid use of en funciones de SQL

Hola que tal, bueno el motivo de este msj es para solicitarles su ayuda con una funcion con la cual tengo problemas.

Les explico a grandes rasgos, yo ocupo actualizar un campo que es una clave y para eso utilizo una funcion, pero dentro de la funcion utilizo un EXECUTE para ejecutar una cadena con la cual obtengo unos datos para hacer la validacion de los datos a actualizar pero me sale el error " Invalid use of "EXECUTE" within a function ", pero no encuentro ningun error, puesto que al ejecutarl lo mismo en SP no marca error

El ejemplo del codigo seria asi mas o menos:

UPDATE tabla
SET clave = dbo.funcionclave codigo

CREATE FUNCTION dbo.funcionclae codigo INT
RETURN INT
AS

DECLARE @nClaveRegreso INT
DECLARE @cSql VARCHAR(8000)
DECLARE @nVeces INT
DECLARE @nSuma INT

SET @nVeces = 1
SET @nSuma = 0

SELECT @cSql = 'SELECT '

WHILE @nVeces < 7
BEGIN
SELECT @cSql = Rtrim(cSql) + 'campo '+CAST(@nVeces AS VARCHAR)
END

SELECT @cSql = Rtrim(@cSql) + ' INTO tmpvariable '
SELECT @cSql = Rtrim(@cSql) + ' FROM tablacampos '
SELECT @cSql = Rtrim(@cSql) + 'WHERE codigo = '+@nCodigo

EXECUTE @cSql -- Nota: Lo intente poniendole EXECUTE (@cSql) pero marca error en el operador

SELECT @nSuma = COUNT(*) FROM tmpvariable

RETURN @nSuma

END
  #2 (permalink)  
Antiguo 17/10/2008, 06:36
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Error Invalid use of en funciones de SQL

es porque no se puede utilizar un execute en una funcion de usuario...

Debes buscar una alternativa; da un poco mas de detalle de lo que quieres hacer (estructura de tablas y ejemplos de ser posible) y seguro te podran ayudar a solucionarlo...



Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
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 09:07.