【问题标题】:How do I test a Table-Valued Function in SQL Server Management Studio?如何在 SQL Server Management Studio 中测试表值函数?
【发布时间】:2010-12-07 00:33:26
【问题描述】:

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

函数代码如下:

使用 [DB_NAME] 走 设置 ANSI_NULLS ON 走 设置 QUOTED_IDENTIFIER ON 走 更改功能 [dbo].[fn_GetConfigurationByProfile] ( @profileName 作为 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_value FROM system_settings_profiles 加入系统设置值 ON system_settings_profiles.ssp_id = system_settings_values.ssv_ssp_id 加入系统设置名称 ON system_settings_names.ssn_id = system_settings_values.ssv_ssn_id 加入 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') 吗?

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

【问题讨论】:

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


    【解决方案1】:
    SELECT *
    FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')
    

    【讨论】:

      【解决方案2】:

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

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

      除其他外,您还可以将其连接到表或使用 where 子句。

      【讨论】:

        【解决方案3】:

        试试这个

        SELECT * FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')
        

        【讨论】:

          【解决方案4】:

          你想使用FROM

          例如:

          select ...
          
              FROM fn_GetConfigurationByProfile('DEFAULTPROFILE')
          

          SQL Server User-defined Functions

          【讨论】:

          • 感谢您的及时回复。我觉得完全没有这个,因为它是一个表值函数:/
          【解决方案5】:

          其他人已经展示了如何在标准查询中调用 Table 函数。但是,我是否可以建议您可能更喜欢创建视图而不是函数?

          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'
          

          如果需要,您将拥有索引视图和过滤其他数据的附加选项。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-01-18
            • 1970-01-01
            • 2013-03-27
            • 2010-12-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多