34 Stimmen

Wie kann ich eine tabellenbewertete Funktion in SQL Server Management Studio testen?

Ich habe noch nie mit Datenbankfunktionen gearbeitet, aber mein aktuelles Projekt erfordert sie. Ich muss eine gängige SQL-Abfrage in eine Funktion packen, damit wir sie nicht hunderte Male in unserem Code eingeben müssen. Ich habe die Funktion erstellt, aber ich weiß nicht, wie ich sie verwenden soll.

Hier ist der Funktionscode:

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
    )

Also, wie würde ich dies in einer Sql-Abfrage verwenden? Benutze ich einfach SELECT fn_GetConfigurationByProfile('DEFAULTPROFILE')?

Diese Frage ist vielleicht etwas laienhaft, aber was soll's. Ich brauche Hilfe :)

44voto

anishMarokey Punkte 11011

Die Sie verwenden möchten VON

Z.B.:

select ...

    FROM fn_GetConfigurationByProfile('DEFAULTPROFILE')

SQL Server Benutzerdefinierte Funktionen

7voto

devio Punkte 36064

Versuchen Sie dies

SELECT * FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')

3voto

LukeH Punkte 251752
SELECT *
FROM dbo.fn_GetConfigurationByProfile('DEFAULTPROFILE')

1voto

MartW Punkte 12138

Sie verwenden ihn in der FROM-Klausel, z. B. :

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

Sie können sie unter anderem auch mit Tabellen verknüpfen oder eine Where-Klausel für sie verwenden.

1voto

Robin Day Punkte 97662

Andere haben gezeigt, wie Sie Ihre Tabellenfunktion innerhalb einer Standardabfrage aufrufen können. Darf ich jedoch vorschlagen, dass Sie vielleicht lieber eine Ansicht als eine Funktion erstellen?

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

Dann können Sie es in Ihrem SQL wie folgt verwenden.

SELECT
    *
FROM
    ConfigurationView
WHERE
    ConfigurationView.ssp_name = 'DEFAULTPROFILE'

Sie haben die zusätzlichen Möglichkeiten, die Ansicht zu indizieren und bei Bedarf auch nach anderen Daten zu filtern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X