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

2021-09-15 00:00:00 sql user-defined-functions sql-server

我从未使用过数据库函数,但我当前的项目需要它.我需要将一个常见的 sql 查询放入一个函数中,这样我们就不必在我们的代码中输入数百次.我已经创建了函数,但我不知道如何使用它.

功能代码如下:

<前>使用 [DB_NAME]走设置 ANSI_NULLS ON走设置 QUOTED_IDENTIFIER ON走更改功能 [dbo].[fn_GetConfigurationByProfile](@profileName AS NVARCHAR(50))退货表作为返回(-- 用结果集的行填充表变量选择 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_valueFROM system_settings_profiles加入 system_settings_valuesON system_settings_profiles.ssp_id = system_settings_values.ssv_ssp_id加入 system_settings_namesON system_settings_names.ssn_id = system_settings_values.ssv_ssn_id加入 system_settings_groupsON system_settings_groups.ssg_id = system_settings_names.ssn_ssg_idWHERE system_settings_profiles.ssp_name = @profileName)

那么我将如何在 sql 查询中使用它?我只使用 SELECT fn_GetConfigurationByProfile('DEFAULTPROFILE') 吗?

这可能是一个业余问题,但好吧.我需要帮助:)

解决方案

你想使用FROM

例如:

选择...FROM fn_GetConfigurationByProfile('DEFAULTPROFILE')

SQL Server 用户定义函数

I've never worked with Database Functions, but my current project requires it. I need to put a common sql query into a function so we don't have to type it out in our code hundreds of times. I've got the function created, but I don't know how to use it.

Here's the function code:

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
    )

So how would I use this in a sql query? Do I just use SELECT fn_GetConfigurationByProfile('DEFAULTPROFILE')?

This may be an amateur question, but oh well. I need help :)

解决方案

you want to use FROM

E.g :

select ...

    FROM fn_GetConfigurationByProfile('DEFAULTPROFILE')

SQL Server User-defined Functions

相关文章