Funzione Scalare SQL

mercoledì 31 ottobre 2007 - 15.25

vpanta Profilo | Senior Member

Ciao a tutti, non conosco bene T-SQL, ma dovrei creare una funzione che dato un parametro Id mi restituisce il valore di una colonna.
Ho scritto questo codice, ma non va bene, perchè :

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION dbo.Funzione
(
-- Add the parameters for the function here
@p1 int
)
RETURNS nvarchar(20)
AS
BEGIN
-- Declare the return variable here

-- Add the T-SQL statements to compute the return value here
RETURN SELECT username FROM dbo.Utente WHERE (Id = @p1)

END
GO

amelix Profilo | Expert

Così a braccio... Prova a mettere TOP 1
>RETURN SELECT TOP 1 username FROM dbo.Utente WHERE (Id = @p1)

Andrea - http://www.MelisWeb.eu/

vpanta Profilo | Senior Member

Ciao,
grazie ma non funziona ho il seguete errore :
Messaggio 1075, livello 15, stato 1, procedura Funzione, riga 17
L'istruzione RETURN di una funzione con valore scalare deve includere un argomento.

lbenaglia Profilo | Guru

>Ciao a tutti, non conosco bene T-SQL, ma dovrei creare una funzione
>che dato un parametro Id mi restituisce il valore di una colonna.

Ciao Vito,

osserva il seguente esempio:

USE tempdb; GO CREATE FUNCTION dbo.udf_GetFirstName( @ContactID int ) RETURNS nvarchar(50) BEGIN DECLARE @FirstName nvarchar(50); SELECT @FirstName = FirstName FROM AdventureWorks.Person.Contact WHERE ContactID = @ContactID; RETURN @FirstName; END GO SELECT dbo.udf_GetFirstName(1) AS FirstName; /* Output: FirstName -------------------------------------------------- Gustavo (1 row(s) affected) */ DROP FUNCTION dbo.udf_GetFirstName;

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5