valores usuario una tipos teclado tabla por listado linea funciones ejemplos ejemplo definidas crear con como atajos sql sql-server user-defined-functions

usuario - listado de funciones en sql server



¿Cómo pruebo una función con valores de tabla en SQL Server Management Studio? (5)

Lo usas en la cláusula FROM, por ejemplo:

SELECT .... FROM dbo.fn_GetConfigurationByProfile(''DEFAULTPROFILE'')

También puede unirlo a las tablas o usar una cláusula Where en su contra, entre otras cosas.

Nunca he trabajado con funciones de base de datos, pero mi proyecto actual lo requiere. Necesito poner una consulta sql común en una función para que no tengamos que escribirla en nuestro código cientos de veces. Tengo la función creada, pero no sé cómo usarla.

Aquí está el código de la función:

USE [DB_NAME] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER FUNCTION [dbo].[fn_GetConfigurationByProfile] ( @profileName AS NVARCHAR(50) ) RETURNS TABLE AS RETURN ( -- Fill the table variable with the rows for your result set 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 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 WHERE system_settings_profiles.ssp_name = @profileName )

Entonces, ¿cómo usaría esto en una consulta SQL? ¿Solo uso SELECT fn_GetConfigurationByProfile (''DEFAULTPROFILE'')?

Esta puede ser una pregunta de aficionados, pero bueno. Necesito ayuda :)


Otros han mostrado cómo puede llamar a su función de tabla dentro de una consulta estándar. Sin embargo, ¿puedo sugerir que prefiera crear una Vista en lugar de una función?

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

Entonces puedes usarlo en tu SQL así.

SELECT * FROM ConfigurationView WHERE ConfigurationView.ssp_name = ''DEFAULTPROFILE''

Tendrá las opciones adicionales de indexar la vista y también filtrar en otros datos fácilmente si lo necesita.


prueba esto

SELECT * FROM dbo.fn_GetConfigurationByProfile(''DEFAULTPROFILE'')



SELECT * FROM dbo.fn_GetConfigurationByProfile(''DEFAULTPROFILE'')