Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
U kunt informatie verkrijgen over de definitie of eigenschappen van een door de gebruiker gedefinieerde functie in SQL Server met behulp van SQL Server Management Studio of Transact-SQL. Mogelijk moet u de definitie van de functie zien om te begrijpen hoe de gegevens worden afgeleid van de brontabellen of om de gegevens te zien die zijn gedefinieerd door de functie.
Als u de naam van een object waarnaar wordt verwezen door een functie wijzigt, moet u die functie wijzigen zodat de tekst de nieuwe naam weerspiegelt. Voordat u de naam van een object wijzigt, geeft u daarom eerst de afhankelijkheden van het object weer om te bepalen of functies worden beïnvloed door de voorgestelde wijziging.
Machtigingen
Als u sys.sql_expression_dependencies gebruikt om alle afhankelijkheden van een functie te vinden, is de machtiging VIEW DEFINITION voor de database en SELECT-machtiging voor sys.sql_expression_dependencies voor de database vereist. Systeemobjectdefinities, zoals de definities die worden geretourneerd in OBJECT_DEFINITION, zijn openbaar zichtbaar.
SQL Server Management Studio gebruiken
De eigenschappen van een door de gebruiker gedefinieerde functie weergeven
Selecteer in Objectverkennerhet plusteken naast de database met de functie waaraan u de eigenschappen wilt weergeven en selecteer vervolgens het plusteken om de map Programmability uit te vouwen.
Selecteer het plusteken om de map Functions uit te vouwen.
Selecteer het plusteken om de map met de functie waarnaar u de eigenschappen wilt weergeven uit te vouwen:
- Tabelwaarde functie
- Scalaire functiewaarde
- Aggregatiefunctie
Klik met de rechtermuisknop op de functie waarvan u de eigenschappen wilt weergeven en selecteer Eigenschappen.
De volgende eigenschappen worden weergegeven in het dialoogvenster Functie-eigenschappen -function_name.
Functienaam Beschrijving Databank De naam van de database die deze functie bevat. Server De naam van het huidige serverexemplaar. Gebruiker De naam van de gebruiker van deze verbinding. Aanmaakdatum Geeft de datum weer waarop de functie is gemaakt. Uitvoeren als Uitvoeringscontext voor de functie. Naam De naam van de huidige functie. Schema Geeft het schema weer dat eigenaar is van de functie. Systeemobject Geeft aan of de functie een systeemobject is. Waarden zijn TrueenFalse.ANSI nullwaarden Geeft aan of het object is gemaakt met de optie ANSI NULLs. Gecodeerde Geeft aan of de functie is versleuteld. Waarden zijn TrueenFalse.Functietype Het type door de gebruiker gedefinieerde functie. Gequoteerde identificator Hiermee wordt aangegeven of het object is gemaakt met de optie voor de geciteerde identificator. Schema-gebonden Geeft aan of de functie schemagebonden is. Waarden zijn Waar en Onwaar. Zie de sectie SCHEMABINDING van CREATE FUNCTION (Transact-SQL)voor meer informatie over schemagebonden functies.
Gebruik Transact-SQL
De definitie en eigenschappen van een functie ophalen
Maak in Objectverkennerverbinding met een exemplaar van de database-engine.
Selecteer op de standaardbalk Nieuwe query.
Kopieer en plak een van de volgende voorbeelden in het queryvenster en selecteer uitvoeren.
Het volgende codevoorbeeld haalt de functienaam, definitie en relevante eigenschappen op.
USE AdventureWorks2022; GO -- Get the function name, definition, and relevant properties SELECT sm.object_id, OBJECT_NAME(sm.object_id) AS object_name, o.type, o.type_desc, sm.definition, sm.uses_ansi_nulls, sm.uses_quoted_identifier, sm.is_schema_bound, sm.execute_as_principal_id -- using the two system tables sys.sql_modules and sys.objects FROM sys.sql_modules AS sm JOIN sys.objects AS o ON sm.object_id = o.object_id -- from the function 'dbo.ufnGetProductDealerPrice' WHERE sm.object_id = OBJECT_ID('dbo.ufnGetProductDealerPrice') ORDER BY o.type; GOMet het volgende codevoorbeeld vervolgens krijg je de definitie van de voorbeeldfunctie
dbo.ufnGetProductDealerPrice.USE AdventureWorks2022; GO -- Get the definition of the function dbo.ufnGetProductDealerPrice SELECT OBJECT_DEFINITION (OBJECT_ID('dbo.ufnGetProductDealerPrice')) AS ObjectDefinition; GO
Zie sys.sql_modules (Transact-SQL) en OBJECT_DEFINITION (Transact-SQL)voor meer informatie.
De afhankelijkheden van een functie ophalen
Maak in Objectverkennerverbinding met een exemplaar van de database-engine.
Selecteer op de standaardbalk Nieuwe query.
Kopieer en plak het volgende voorbeeld in het queryvenster en selecteer uitvoeren.
USE AdventureWorks2022; GO -- Get all of the dependency information SELECT OBJECT_NAME(sed.referencing_id) AS referencing_entity_name, o.type_desc AS referencing_description, COALESCE(COL_NAME(sed.referencing_id, sed.referencing_minor_id), '(n/a)') AS referencing_minor_id, sed.referencing_class_desc, sed.referenced_class_desc, sed.referenced_server_name, sed.referenced_database_name, sed.referenced_schema_name, sed.referenced_entity_name, COALESCE(COL_NAME(sed.referenced_id, sed.referenced_minor_id), '(n/a)') AS referenced_column_name, sed.is_caller_dependent, sed.is_ambiguous -- from the two system tables sys.sql_expression_dependencies and sys.object FROM sys.sql_expression_dependencies AS sed INNER JOIN sys.objects AS o ON sed.referencing_id = o.object_id -- on the function dbo.ufnGetProductDealerPrice WHERE sed.referencing_id = OBJECT_ID('dbo.ufnGetProductDealerPrice'); GO
Zie sys.sql_expression_dependencies (Transact-SQL) en sys.objects (Transact-SQL)voor meer informatie.