如何在SQL Server Management Studio中测试表值函数?

时间:2009-10-15 12:31:36

标签: sql sql-server user-defined-functions

我从未使用过数据库功能,但我当前的项目需要它。我需要将一个常见的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')?

这可能是一个业余问题,但是哦。我需要帮助:))

5 个答案:

答案 0 :(得分:42)

您想使用 FROM

例如:

select ...

    FROM fn_GetConfigurationByProfile('DEFAULTPROFILE')

SQL Server User-defined Functions

答案 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'

您可以添加索引视图的选项,并在需要时轻松过滤其他数据。