consulta de create function desde VB

02/06/2005 - 13:38 por Jesus G. | Informe spam
Hola, foreros. Estoy creando un programa que me crea una base de datos en
una instancia de SQL Server. En un fichero de texto cargo los Create
Datatable y ejecuto ese texto como un script, con un
sqlcommand.ExecuteNonQuery. Los create datatable me los genera
correctamente, y los Create Procedure también, pero tengo un problemilla
creando unas funciones definidas por el usuario. Al hacer un Create Function
me da el siguiente error:

Esta es la funcion:

CREATE FUNCTION funLeerSerieDeFraDesdeAlbaran
(@IdFact int)
RETURNS nvarchar(5)
AS
BEGIN
DECLARE @valor nvarchar(5)
SELECT @valor = tbSerie.Codigo FROM tbDocCab INNER JOIN tbSerie ON
tbSerie.Id = tbDocCab.Serie
WHERE tbDocCab.IdDoc = @IdFact
return @valor
END

El error al ejecutar el command.ExecuteNonQuery:

ex.message "Línea 4: sintaxis incorrecta cerca de 'FUNCTION'.
Debe declarar la variable '@IdFact'.
La instrucción RETURN con un estado de retorno sólo puede usarse en un
procedimiento almacenado." String

¿Alguien sabe a qué es debido? La función está bien escrita, pues funciona
en la realidad así como está en una base de datos.

Preguntas similare

Leer las respuestas

#1 Pablo Fébolo
02/06/2005 - 14:47 | Informe spam
Jesus

proba colocandole el propietario al nombre de la función
quedaria algo así:

CREATE FUNCTION dbo.funLeerSerieDeFraDesdeAlbaran

Suerte.
Respuesta Responder a este mensaje
#2 Jesus G.
02/06/2005 - 16:17 | Informe spam
Gracias por la respuesta Pablo, pero me sigue dando el mismo error con el
dbo. delante:

ex.message "Línea 5: sintaxis incorrecta cerca de 'FUNCTION'.
Debe declarar la variable '@IdFact'.
La instrucción RETURN con un estado de retorno sólo puede usarse en un
procedimiento almacenado." String

La funcion es esta:

CREATE FUNCTION dbo.funLeerSerieDeFraDesdeAlbaran(@IdFact int) --Esta es
la linea 5 pq las anteriores lineas son lineas en blanco
RETURNS nvarchar(5)
AS
BEGIN
DECLARE @valor nvarchar(5)
SELECT @valor = tbSerie.Codigo FROM tbDocCab INNER JOIN tbSerie ON
tbSerie.Id = tbDocCab.Serie
WHERE tbDocCab.IdDoc = @IdFact
return @valor
END

"Pablo Fébolo" escribió en el mensaje
news:
Jesus

proba colocandole el propietario al nombre de la función
quedaria algo así:

CREATE FUNCTION dbo.funLeerSerieDeFraDesdeAlbaran

Suerte.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida