如何测试在SQL Server Management Studio中的一个表值函数?(How do

2019-08-18 08:16发布

我从来没有使用数据库功能的工作,但我目前的项目需要它。 我需要把一个普通的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')?

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

Answer 1:

要从使用

例如:

select ...

    FROM fn_GetConfigurationByProfile('DEFAULTPROFILE')

SQL Server用户定义函数



Answer 2:

试试这个

SELECT * FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')


Answer 3:

SELECT *
FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')


Answer 4:

您在FROM子句中,如使用它:

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

您也可以将其加入表或使用where子句反对,等等。



Answer 5:

其他人已经表明,你怎么能一个标准的查询中调用你的表功能。 不过,我可以建议你可能希望创建一个视图,而不是一个功能?

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'

您将有索引视图,并过滤其它数据很容易,你应该要求它的附加选项。



文章来源: How do I test a Table-Valued Function in SQL Server Management Studio?