Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/10/2008, 21:39
Avatar de drako_darpan
drako_darpan
 
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 16 años, 2 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