web-dev-qa-db-fra.com

Comment tester une fonction table dans SQL Server Management Studio?

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 :)

32
Jeff

vous souhaitez utiliser [~ # ~] à partir de [~ # ~]

Par exemple :

select ...

    FROM fn_GetConfigurationByProfile('DEFAULTPROFILE')

Fonctions définies par l'utilisateur SQL Server

43
anishMarokey

essaye ça

SELECT * FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')
7
devio
SELECT *
FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')
3
LukeH

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.

1
Robin Day

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.

1
MartW