[SQL Server 2005] Problème de création de fonction

Problème de création de fonction [SQL Server 2005] - SQL/NoSQL - Programmation

Marsh Posté le 04-08-2006 à 11:54:21    

Bonjour,
 
Je ne pariviens pas à créer ma fonction :
 


CREATE FUNCTION countField (@tableName VARCHAR(80), @fieldName VARCHAR(80))
 RETURNS NUMERIC (18) AS
BEGIN
 DECLARE @returnValue NUMERIC (18)
 
 SELECT @returnValue = COUNT (@fieldName)
 FROM @tableName
 
 RETURN @returnValue
END


 
J'ai l'erreur suivante :
Server: Msg 1087, Level 15, State 2, Procedure countField, Line 7
La variable de table '@tableName' doit être déclarée.
 
Pourquoi SQL Server 2005 n'accepte-il pas de nom de tables en variable ? J'en ai besoin car j'aurais besoin d'ajouter dans la fonction de quoi récupérer le nom de la table au lieu de l'avoir en paramètre.
 
Merci d'avance...


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

Marsh Posté le 04-08-2006 à 11:54:21   

Reply

Marsh Posté le 04-08-2006 à 14:03:56    

En fait, je crois que tu as exactement le même problème que moi avec mon IN(@variable).
 
Si je trouve la solution, je le poste ici.


---------------
Proverbe chinois: il vaut mieux apprendre à pêcher à un mendiant que de lui donner du poisson...
Reply

Marsh Posté le 04-08-2006 à 16:36:34    

euh, une petite chose :
 
select count(...) from unetable
 
=> quel que soit le "...", tu auras le même résultat. donc tu n'as pas besoin de te prendre la tête avec ça, à moins de faire un "count(distinct ...)"
 
ensuite, tu devra passer par l'instruction "execute" pour exécuter une requête dynamique de la sorte.

Reply

Sujets relatifs:

Leave a Replay

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