2009-10-15 4 views
28

私はデータベース機能を使ったことがありませんが、私の現在のプロジェクトではそれが必要です。関数に共通のSQLクエリを入れて、何百回もコードに入力する必要はありません。関数を作成しましたが、使用方法はわかりません。SQL Server Management Studioでテーブル値関数をテストするにはどうすればよいですか?

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

 
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')だけを使用しますか?

これはアマチュアの質問かもしれませんが、まあまあです。私は助けを必要と:)

答えて

37

これを試してみてください。

select ... 

    FROM fn_GetConfigurationByProfile('DEFAULTPROFILE') 

SQL Server User-defined Functions

+0

タイムリーな対応に感謝します。私はそれがテーブル値の関数だったので、これは持っていない総騒ぎのように感じる:/ – Jeff

+0

あなたがより多くを助けるgivenHopeのように読む: – anishMarokey

3
SELECT * 
FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE') 
1

あなたはFROM句で、例えば、それを使用する:あなたはまた、テーブルにそれに参加したり、他のものの間で、それに対してwhere句を使用することができます

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

7

あなたが例:

FROM を使用したい

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

その他は、あなたがAの中にあなたの表の関数を呼び出すことができる方法が示されています標準クエリ。ただし、関数ではなくビューを作成することをお勧めしますか?

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' 

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

+0

ありがとう、私はこれをチェックします。 – Jeff

関連する問題