SQLServer : procedure stockée ou fonction

SQLServer : procedure stockée ou fonction - SQL/NoSQL - Programmation

Marsh Posté le 07-05-2003 à 08:18:16    

Bonjour à tous !
Est il possible de créer sous SQLServer 7 une procédure stockée ou une fonction qui renvoie un résultat et qui est donc utilisable dans un select (et pas par un "Execute" ) et qui rajoute donc une colonne à notre résultat ?
 
Si oui, vous auriez pas un p'tit exemple d'une fonction qui renvoie Sysdate pas exemple....?
 
Merci d'avance

Reply

Marsh Posté le 07-05-2003 à 08:18:16   

Reply

Marsh Posté le 07-05-2003 à 09:30:27    

Salut, Ô mario au doux numéro :D
 
peux-tu donner un exemple de ton select ?
bon, je ne pense pas que cela soit possible tel quel, d'utiliser une proc dans un select. Tu dois en revanche pouvoir utiloiser une fonction système dans le select :
la fonction getdate() renvoie la date système (sous sybase, mais ça devrait être la mm chose avec sql server) & tu peux t'en servir : where madate > getdate()


---------------
di. / www.diredaredare.org - Ailes de la ville
Reply

Marsh Posté le 07-05-2003 à 09:42:58    

instantdharma a écrit :

Salut, Ô mario au doux numéro :D
 
peux-tu donner un exemple de ton select ?
bon, je ne pense pas que cela soit possible tel quel, d'utiliser une proc dans un select. Tu dois en revanche pouvoir utiloiser une fonction système dans le select :
la fonction getdate() renvoie la date système (sous sybase, mais ça devrait être la mm chose avec sql server) & tu peux t'en servir : where madate > getdate()
 


 
 
En fait, je voudrais faire un truc du genre:  
select monchamp, mafunction(), from matable
 
La date etait juste pour exemple...
 
Je sais que sous SQLServer 2000, on peut faire un Create Function ......
 
Mais pas sous SQLserver 7 apparament, alors, existe-t-il une solution identique ?
 
 
Et vive le doux numéro :D !

Reply

Marsh Posté le 08-05-2003 à 18:32:39    

/me voit pas trop où il y a le moindre problème :heink:
 


CREATE FUNCTION GET_CURCIGLE (@CURCODE varchar(3))
RETURNS char(2) AS  
BEGIN
declare @TMP char(2)
SELECT @TMP = CUR_CIGLE FROM CURRENCY WHERE CURRENCY.CURCODE = @CURCODE
RETURN @TMP
END
 
Puis dans ton select :
 
SELECT PRIX, GET_CURCIGLE(CURCODE) as CIGLE
FROM TARIF
WHERE ARTICLE = '1'


 
Par exemple.
 
Ca te retourne dans une colonne supplémentaire le cigle de la monnaie associée au prix retourné.
Si tu as plusieurs lignes, le fonction sera éxécutée autant de fois que de lignes, avec autant de résultats possible. A ce moment, on voit que c'est pas très malin et qu'il vaut mieu faire une jointure dans ce cas, car on fait autant de requêtes dans la table des monnaies qu'on a de prix retournés, ce qui peut être catastrophique si on a beaucoup de résultats.

Reply

Marsh Posté le 08-05-2003 à 18:33:51    

Ah euh... Ca marche pas sous SQL Server 7.0 ?
 
Ha... Euh... Ben t dans la merde alors :D
 
Attends

Reply

Marsh Posté le 08-05-2003 à 18:37:36    

Bon, OK, pleure : SQL Server 7.0 suporte pas les fonctions utilisateurs.
 
Obligé de passer par une procédure stockée donc...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed