web-dev-qa-db-ja.com

SQL Server Management Studioでテーブル値関数をテストするにはどうすればよいですか?

データベース関数を使用したことはありませんが、現在のプロジェクトでは必要です。一般的なSQLクエリを関数に入れる必要があるので、コードに何百回も入力する必要がありません。関数を作成しましたが、使用方法がわかりません。

機能コードは次のとおりです。

使用[DB_NAME] 
 GO 
 SET ANSI_NULLS ON 
 GO 
 SET QUOTED_IDENTIFIER ON 
 GO 
 
 ALTER関数[dbo]。[fn_GetConfigurationByProfile] 
(
 @profileName AS NVARCHAR(50)
)
 RETURNS TABLE 
 AS 
 RETURN 
(
-結果セットの行をテーブル変数に入力します
 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 
 __ ss_profiles_settings_profiles_settings_profiles__ss JOIN system_settings_names 
 ON system_settings_names.ssn_id = system_settings_values.ssv_ssn_id 
 JOIN system_settings_groups 
 ON _settings_groups.ssg_id = system_settings_names.ssn_ssg_id 
 WHERE system_settings_profiles.ssp_name = @profileName 
)
 

それで、SQLクエリでこれをどのように使用しますか? SELECT fn_GetConfigurationByProfile( 'DEFAULTPROFILE')を使用するだけですか?

これは素人の質問かもしれませんが、そうですね。私は助けが必要です :)

32
Jeff

使用したい[〜#〜] from [〜#〜]

例:

select ...

    FROM fn_GetConfigurationByProfile('DEFAULTPROFILE')

SQL Serverユーザー定義関数

43
anishMarokey

これを試して

SELECT * FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')
7
devio
SELECT *
FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')
3
LukeH

他の人は、標準クエリ内でテーブル関数を呼び出す方法を示しました。ただし、関数ではなくビューを作成することをお勧めしますか?

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'

ビューにインデックスを付けたり、必要に応じて他のデータを簡単にフィルタリングしたりするオプションが追加されます。

1
Robin Day

FROM句で使用します。例:

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

また、テーブルに結合したり、それに対してwhere句を使用したりすることもできます。

1
MartW