Función escalar

22/10/2005 - 12:38 por Raipon | Informe spam
Hola. Pido disculpas por adelantado si les parece que esta pregunta es
trivial. Pero la verdad es que no consigo ver donde está el problema.
Tengo MSDE 2000 instalado y desde un programa que hace las veces de
Administrador corporativo intento crear una función definida por el usuario.
Uso la siguiente sentencia :

Create Function dbo.Prueba
RETURNS TABLE
AS
RETURN (Select * From Productes)

Pero siempre obtengo el siguiente error .

OLE IDispatch exception code 170 from Microsoft SQL ( 42000): Line 91:
Incorrect syntax near 'RETURNS'.A RETURN statement with a return value

Espero que puedan ayudarme. Muchas gracias.
 

Leer las respuestas

#1 cali
22/10/2005 - 19:40 | Informe spam
mejor lo hubieras hecho con una vista que te devuelva ese conjunto de
resultados, para devolver un tipo table en un udf tiene que contruir una
tabla en la declaracion y hacerle el insert luego para que te devuelva la
data

aqui va un ejemplo, k espero k te sirva

CREATE FUNCTION dbo.customersbycountry (@Country varchar(15))
RETURNS @CustomersbyCountryTab table
([CustomerID] [nchar] (5), [CompanyName] [nvarchar] (40), [ContactName]
[nvarchar] (30),
[ContactTitle] [nvarchar] (30), [Address] [nvarchar] (60), [City] [nvarchar]
(15),
[PostalCode] [nvarchar] (10), [Country] [nvarchar] (15), [Phone] [nvarchar]
(24),
[Fax] [nvarchar] (24)
)
as
begin
insert into @CustomersByCountryTab
SELECT [CustomerID],
[CompanyName],
[ContactName],
[ContactTitle],
[Address],
[City],
[PostalCode],
[Country],
[Phone],
[Fax]
FROM [Northwind].[dbo].[Customers]
where country = @Country

return
end
SELECT * FROM dbo.customersbycountry('USA')
SELECT * FROM dbo.customersbycountry('CANADA')
SELECT * FROM dbo.customersbycountry('ADF')




"Raipon" escribió en el mensaje
news:
Hola. Pido disculpas por adelantado si les parece que esta pregunta es
trivial. Pero la verdad es que no consigo ver donde está el problema.
Tengo MSDE 2000 instalado y desde un programa que hace las veces de
Administrador corporativo intento crear una función definida por el
usuario.
Uso la siguiente sentencia :

Create Function dbo.Prueba
RETURNS TABLE
AS
RETURN (Select * From Productes)

Pero siempre obtengo el siguiente error .

OLE IDispatch exception code 170 from Microsoft SQL ( 42000): Line 91:
Incorrect syntax near 'RETURNS'.A RETURN statement with a return value

Espero que puedan ayudarme. Muchas gracias.

Preguntas similares