Je n'ai jamais travaillé avec les fonctions de base de données, mais mon projet actuel l'exige. J'ai besoin de mettre une requête sql commune dans une fonction afin que nous n'ayons pas à la taper des centaines de fois dans notre code. J'ai créé la fonction, mais je ne sais pas comment l'utiliser.
Voici le code de fonction:
UTILISER [DB_NAME] ALLER METTRE ANSI_NULLS SUR ALLER METTRE QUOTED_IDENTIFIER SUR ALLER ALTER FUNCTION [dbo]. [Fn_GetConfigurationByProfile] ( @ProfileName AS NVARCHAR (50) ) TABLEAU DE RETOURS AS RETOUR ( - Remplissez la variable du tableau avec les lignes de votre jeu de résultats SELECT system_settings_groups.ssg_id, system_settings_groups.ssg_name, System_settings_groups. ssg_parent_group_id, system_settings_names.ssn_name, system_Settings_names.ssn_display_name, system_settings_values.ssv_value FROM system_settings_profiles JOIN system_settings_values__s_s_s_s_s_s_s_s_s_s_s_s_s_s_s_s_s_s_p JOIN system_settings_names ON system_settings_names.ssn_id = system_settings_values.ssv_ssn_id JOIN system_settings_groups ON system _settings_groups.ssg_id = system_settings_names.ssn_ssg_id OERE system_settings_profiles.ssp_name = @profileName )
Alors, comment pourrais-je l'utiliser dans une requête SQL? Dois-je simplement utiliser SELECT fn_GetConfigurationByProfile ('DEFAULTPROFILE')?
C'est peut-être une question d'amateur, mais bon. J'ai besoin d'aide :)
vous souhaitez utiliser [~ # ~] à partir de [~ # ~]
Par exemple :
select ...
FROM fn_GetConfigurationByProfile('DEFAULTPROFILE')
essaye ça
SELECT * FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')
SELECT *
FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')
D'autres ont montré comment appeler votre fonction Table dans une requête standard. Cependant, puis-je suggérer que vous préférez peut-être créer une vue plutôt qu'une fonction?
CREATE VIEW [dbo].[ConfigurationView] AS
SELECT
system_settings_profiles.ssp_name,
system_settings_groups.ssg_id,
system_settings_groups.ssg_name,
system_settings_groups.ssg_parent_group_id,
system_settings_names.ssn_name,
system_Settings_names.ssn_display_name,
system_settings_values.ssv_value
FROM system_settings_profiles
JOIN system_settings_values
ON system_settings_profiles.ssp_id = system_settings_values.ssv_ssp_id
JOIN system_settings_names
ON system_settings_names.ssn_id = system_settings_values.ssv_ssn_id
JOIN system_settings_groups
ON system_settings_groups.ssg_id = system_settings_names.ssn_ssg_id
GO
Ensuite, vous pouvez l'utiliser dans votre SQL comme ceci.
SELECT
*
FROM
ConfigurationView
WHERE
ConfigurationView.ssp_name = 'DEFAULTPROFILE'
Vous aurez les options supplémentaires d'indexation de la vue et de filtrage sur d'autres données facilement si vous en avez besoin.
Vous l'utilisez dans la clause FROM, par exemple:
SELECT ....
FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')
Vous pouvez également le joindre à des tables ou utiliser une clause where contre lui, entre autres choses.