我从未使用过数据库功能,但我当前的项目需要它。我需要将一个常见的sql查询放入一个函数中,这样我们就不必在代码中输入数百次了。我已经创建了这个函数,但我不知道如何使用它。
这是功能代码:
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 )
那么我如何在sql查询中使用它?我只使用SELECT fn_GetConfigurationByProfile('DEFAULTPROFILE')?
这可能是一个业余问题,但是哦。我需要帮助:))
答案 0 :(得分:42)
您想使用 FROM
例如:
select ...
FROM fn_GetConfigurationByProfile('DEFAULTPROFILE')
答案 1 :(得分:7)
试试这个
SELECT * FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')
答案 2 :(得分:3)
SELECT *
FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')
答案 3 :(得分:1)
您可以在FROM子句中使用它,例如:
SELECT ....
FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')
您也可以将其加入表格或使用针对它的where子句等。
答案 4 :(得分:1)
其他人已经展示了如何在标准查询中调用Table函数。但是,我可以建议您更喜欢创建一个View而不是一个函数吗?
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
然后你可以在你的SQL中使用它。
SELECT
*
FROM
ConfigurationView
WHERE
ConfigurationView.ssp_name = 'DEFAULTPROFILE'
您可以添加索引视图的选项,并在需要时轻松过滤其他数据。