我从来没有使用数据库功能的工作,但我目前的项目需要它。 我需要把一个普通的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')?
这可能是一个业余的问题,但哦。 我需要帮助 :)
要从使用
例如:
select ...
FROM fn_GetConfigurationByProfile('DEFAULTPROFILE')
SQL Server用户定义函数
试试这个
SELECT * FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')
SELECT *
FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')
您在FROM子句中,如使用它:
SELECT ....
FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')
您也可以将其加入表或使用where子句反对,等等。
其他人已经表明,你怎么能一个标准的查询中调用你的表功能。 不过,我可以建议你可能希望创建一个视图,而不是一个功能?
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'
您将有索引视图,并过滤其它数据很容易,你应该要求它的附加选项。