Parce qu'une fonction dans Transact-SQL est traitée comme un objet, elle a besoin de maintenance. Certaines des actions que vous prendrez incluent de renommer, modifier ou supprimer une fonction.
Si vous créez une fonction et l'exécutez, elle est stockée dans le nœud de fonctions scalaires avec le nom que vous lui avez donné. Si vous le souhaitez, vous pouvez modifier ce nom mais conserver les fonctionnalités de la fonction. Pour renommer une fonction, dans l'Explorateur d'objets, cliquez dessus avec le bouton droit de la souris et cliquez sur Renommer. Tapez le nouveau nom de votre choix, puis appuyez sur Entrée.
Si vous créez une fonction et vous décidez que vous n'avez plus besoin d'elle, vous pouvez la supprimer. Pour supprimer une fonction dans l'Explorateur d'objets, localisez la fonction dans la section fonctions, cliquez dessus avec le bouton droit de la souris et cliquez sur Supprimer. La boîte de dialogue Supprimer un objet viendra. Si vous voulez supprimer la fonction, cliquez sur OK; dans le cas contraire, cliquez sur Annuler. Pour supprimer par programmation une fonction :
Comme nous l'avons déjà mentionné, dans le corps de la fonction, vous définissez ce dont la fonction est censée prendre soin. Au minimum, une fonction peut renvoyer un numéro simple, tapez sur le côté droit du mot-clé RETURN. Voici un exemple : CREATE FUNCTION Addition()
RETURNS int
BEGIN
RETURN 1
END
Vous pouvez également déclarer de nouvelles variables dans le corps de la fonction pour aider dans l'exercice de l'affectation. Une variable déclarée dans le corps d'une fonction est appelée une variable locale. Une fois qu'une telle variable a été déclarée, elle peut être utilisée comme n'importe quelle autre variable. Voici un exemple : CREATE FUNCTION Addition()
RETURNS int
BEGIN
DECLARE @Number1 int
SET @Numéro1 = 588
RETURN @Number1 + 1450
END
Afin de remplir ses missions, une fonction peut être fournie avec certaines valeurs. Lorsque vous créez une fonction, placer-la d'une autre façon au lieu d'additionner les variables locales, vous pouvez avoir besoin du code qui appelle la fonction pour fournir les valeurs nécessaires pour effectuer l'affectation. Par exemple, imaginez que vous souhaitez créer une fonction qui générerait des adresses de courriel des employés lorsqu'un utilisateur a saisi un nom et prénom. Du moment que vous créez la fonction, vous ne pouvez pas savoir ou prédire les noms des employés, y compris ceux qui n'ont pas encore été embauché encore. Dans ce cas, vous pouvez écrire la fonction entière mais fournir un ou plusieurs espaces réservés pour les valeurs qui pourraient être fournis lorsque la fonction est appelée. Une valeur externe qui est fournie à une fonction est appelée un paramètre. Une fonction peut également prendre plusieurs paramètres. Par conséquent, lorsque vous créez une fonction, vous décidez également si votre fonction prendrait un ou plusieurs paramètres et que seraient ces paramètres, le cas échéant.
Nous avons déjà vu que le nom d'une fonction est également suivi de parenthèses. Si la fonction n'utilise pas une valeur externe, ses parenthèses peuvent être laissées vides. Si une fonction utilise une valeur externe, lorsque vous créez la fonction, vous devez spécifier le nom et le type de la valeur des paramètres. Le nom du paramètre est créé avec le symbole @, comme une variable, tel que nous l'avons vu dans la leçon précédente. Voici un exemple : CREATE FUNCTION Addition(@Number1 Decimal(6,2)) Lorsqu'une fonction prend un paramètre, dans le corps de la fonction, vous pouvez utiliser le paramètre comme si vous connaissiez sa valeur, aussi longtemps que vous respectez ce type de valeur. Voici un exemple : CREATE FUNCTION Addition(@Number1 Decimal(6,2)) RETURNS Decimal(6,2) BEGIN RETURN @Number1 + 1450 END
Lorsque vous appelez une fonction qui prend un paramètre, vous devez fournir une valeur pour cet argument. Pour le faire, entrez la valeur du paramètre dans les parenthèses de la fonction. Voici un exemple :
Au lieu d'un seul paramètre, vous pouvez également créer une fonction qui prend plusieurs paramètres. Dans ce cas, séparez les arguments dans les parenthèses de la fonction par une virgule. Voici un exemple : CREATE FUNCTION Addition(@Number1 Decimal(6,2), @Number2 Decimal(6,2)) Une fois de plus, dans le corps de la fonction, vous pouvez utiliser les paramètres comme si vous connaissiez déjà leur valeur. Vous pouvez également déclarer des variables locales et impliquer avec des paramètres comme bon vous semble. Voici un exemple : CREATE FUNCTION Addition(@Number1 Decimal(6,2),
@Number2 Decimal(6,2))
RETURNS Decimal(6,2)
BEGIN
DECLARE @Result Decimal(6,2)
SET @Result = @Number1 + @Number2
RETURN @Result
END;
GO
Lorsque vous appelez une fonction qui prend plus d'un paramètre, dans les parenthèses de la fonction, fournissez une valeur pour chaque paramètre dans l'ordre exact qu'ils apparaissent dans les parenthèses de la fonction. Voici un exemple : PRINT Variables1.dbo.Addition(1450, 228) ; Vous pouvez également transmettre les noms des variables déjà déclarées et initialisées. Voici un exemple qui appelle la fonction ci-dessus : DECLARE @Nbr1 Decimal(6,2)
@Nbr2 Decimal(6,2)
SET @Nbr1 = 4268.55
SET @Nbr2 = 26.83
SELECT @Nbr1 As First,
@Nbr2 As Second,
Variables1.dbo.Addition (@Nbr1, @Nbr2) AS result
Cela donnerait :
Lorsqu'une fonction avec arguments est appelée, une valeur doit être transmise pour chaque argument. Voici un exemple d'une telle fonction : USE Exercise ;
GO
CREATE FUNCTION CalculateTaxAmount (@Price money, @Rate decimal(6, 2))
RETURNS decimal(6, 3)
AS
BEGIN
DECLARE @ResultVar Money
SELECT @ResultVar = @Price * @Rate / 100
RETURN @ResultVar
END
GO
Voici des exemples de l'appel de la fonction : USE Exercise ; GO PRINT dbo.CalculateTaxAmount(140.00, 5.75) ; PRINT dbo.CalculateTaxAmount(195.95, 5.75) ; PRINT dbo.CalculateTaxAmount(250.00, 7.55) ; PRINT dbo.CalculateTaxAmount(125.95, 5.75) ; GO Cela donnerait : 8.05 11.27 18.88 7.24 Dans certains cas, si la fonction est généralement appelée avec la même valeur pour un argument, vous pouvez spécifier une valeur par défaut pour cet argument. Lorsqu'une telle fonction est appelée, vous (ou l'utilisateur) pouvez omettre la valeur de l'argument. Pour spécifier une valeur par défaut pour un argument, entre les parenthèses de la fonction après le nom et le type de données de l'argument, tapez =, suivi de la valeur souhaitée. Voici un exemple : USE exercise ;
GO
CREATE FUNCTION CalculateTaxAmount (@Price money, @Rate decimal (6, 2) = 5,75)
RETURNS decimal(6, 2)
AS
BEGIN
DECLARE @ResultVar money
SELECT @ResultVar = @Price * @Rate / 100
RETURN @ResultVar
END
GO
Lorsque vous appelez une fonction qui a une valeur par défaut pour un argument, il est inutile de transmettre une valeur pour cet argument, même si vous pouvez, si vous le souhaitez. Lors de l'appel de la fonction, dans l'espace réservé à l'argument, tapez le mot clé DEFAULT. Voici des exemples de l'appel de la version la plus récente de notre fonction : USE Exercise GO PRINT dbo.CalculateTaxAmount (140.00, DEFAULT); PRINT dbo.CalculateTaxAmount (195.95, 5,75); PRINT dbo.CalculateTaxAmount (250,00, 7.55); PRINT dbo.CalculateTaxAmount (125.95, default) ; GO
|
||||||||||||||||||||||||||||||||||
|
|
|
|
||
| Précédant | Copyright © 2010 Yevol | Suivant |
|
|
||