Problème insertion fonction scalaire dans l'arbre des fonctions scalaires
Bonjour,
Je cherche à créer une fonction scalaire qui sera appelée depuis un programme tiers. Pour ce faire dans sqlserver management studio (je suis en version 2014) je déroule l'arbre programmabilité/fonction, je fais un clic droit sur Fonctions scalaires puis Nouvelle fonction scalaire.
Ce qui me donne ce template :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| -- ================================================
-- Template generated from Template Explorer using:
-- Create Scalar Function (New Menu).SQL
--
-- Use the Specify Values for Template Parameters
-- command (Ctrl-Shift-M) to fill in the parameter
-- values below.
--
-- This block of comments will not be included in
-- the definition of the function.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION <Scalar_Function_Name, sysname, FunctionName>
(
-- Add the parameters for the function here
<@Param1, sysname, @p1> <Data_Type_For_Param1, , int>
)
RETURNS <Function_Data_Type, ,int>
AS
BEGIN
-- Declare the return variable here
DECLARE <@ResultVar, sysname, @Result> <Function_Data_Type, ,int>
-- Add the T-SQL statements to compute the return value here
SELECT <@ResultVar, sysname, @Result> = <@Param1, sysname, @p1>
-- Return the result of the function
RETURN <@ResultVar, sysname, @Result>
END
GO |
Je rajoute dans ce template ce que je veux faire (pour le moment pour le test c'est juste une selection de nom et prenom :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
-- ======================================================================
-- A partir de l'UID de l'utilisateur on récupère son nom et son prénom
-- On construit un mot de passe en selectionnant :
-- 3 caractères dans le prénom + 3 caractères dans le nom +
-- un nombre aléatoire + un caractère spécial aléatoire
-- ======================================================================
USE XXX;
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <XXXXX>
-- Create date: <23/09/2016>
-- Description: <Fonction permettant de générer un mot de passe simple>
-- =============================================
CREATE FUNCTION dbo.fctGetMdpSilpc
(
@_uid nvarchar(450)
)
RETURNS varchar(9)
AS
BEGIN
-- Déclaration des variables
DECLARE @nom varchar(32)
DECLARE @prenom varchar(32)
DECLARE @carspe varchar(1)
DECLARE @mdp varchar(9)
DECLARE @nbalea varchar(2)
-- selection des noms et prénoms
Select @nom = personne_nom, @prenom = personne_prenom
From dbo.PERSONNE
where personne_uid = @_uid
-- Return the result of the function
RETURN @nom
END
GO |
Or quand j'enregistre il me propose de stocker cela dans un fichier .sql là où j'ai tous mes scripts de déjà enregistré. Après l'enregistrement je ne vois pas apparaître ma fonction dans l'arbre des fonctions scalaires.
Quel est la manipulation a effectuer pour que ma fonction s'enregistre bien dans les fonctions scalaires ?
Merci d'avance.