Visualizzare le funzioni definite dall'utente
È possibile acquisire informazioni sulla definizione o le proprietà di una funzione definita dall'utente in SQL Server 2012 tramite SQL Server Management Studio o Transact-SQL. Potrebbe essere necessario visualizzare la definizione della funzione per determinare come vengono derivati i dati dalle tabelle di origine o per visualizzare i dati definiti dalla funzione.
Importante |
---|
Se si cambia il nome di un oggetto a cui viene fatto riferimento da una funzione, è necessario modificare la funzione in modo che per il relativo testo venga fatto riferimento al nuovo nome. Pertanto, prima di rinominare un oggetto, visualizzare le dipendenze dell'oggetto per determinare se la modifica proposta interessa eventuali funzioni. |
Contenuto dell'argomento
Prima di iniziare:
Sicurezza
Per acquisire informazioni su una funzione tramite:
SQL Server Management Studio
Transact-SQL
Prima di iniziare
Sicurezza
Autorizzazioni
L'utilizzo di sys.sql_expression_dependencies per trovare tutte le dipendenze da una funzione richiede l'autorizzazione VIEW DEFINITION per il database e l'autorizzazione SELECT per sys.sql_expression_dependencies per il database. Le definizioni dell'oggetto di sistema, come quelle restituite in OBJECT_DEFINITION sono visibili pubblicamente.
[Top]
Utilizzo di SQL Server Management Studio
Per mostrare le proprietà di una funzione definita dall'utente
In Esplora oggetti fare clic sul segno più accanto al database contenente la funzione in cui si desidera visualizzare le proprietà, quindi fare di nuovo clic sul segno più per espandere la cartella Programmabilità.
Fare clic sul segno più per espandere la cartella Funzioni.
Fare clic sul segno più per espandere la cartella che contiene la funzione di cui si desidera visualizzare le proprietà:
Funzione con valori di tabella
Funzione a valori scalari
Funzione di aggregazione
Fare clic con il pulsante destro del mouse sulla funzione di cui si desidera visualizzare le proprietà e scegliere Proprietà.
Le seguenti proprietà vengono visualizzate nella finestra di dialogo Proprietà funzione – function_name.
Database
Nome del database che contiene la funzione.Server
Nome dell'istanza del server corrente.Utente
Nome dell'utente della connessione.Data creazione
Visualizza la data di creazione della funzione.Esegui come
Contesto di esecuzione per la funzione.Nome
Nome della funzione corrente.Schema
Visualizza lo schema proprietario della funzione.Oggetto di sistema
Indica se la funzione è un oggetto di sistema. I valori sono True e False.ANSI NULLs
Indica se l'oggetto è stato creato con l'opzione ANSI NULLs.Crittografata
Indica se la funzione è crittografata. I valori sono True e False.Tipo di funzione
Tipo della funzione definita dall'utente.Identificatore delimitato
Indica se l'oggetto è stato creato con l'opzione quoted identifier.Associata a schema
Indica se la funzione è associata allo schema. I valori sono True e False. Per informazioni sulle funzioni associate a schema, vedere la sezione relativa a SCHEMABINDING in CREATE FUNCTION (Transact-SQL).
[Top]
Utilizzo di Transact-SQL
Per acquisire la definizione e le proprietà di una funzione
In Esplora oggetti connettersi a un'istanza del Motore di database.
Sulla barra Standard fare clic su Nuova query.
Copiare e incollare uno degli esempi seguenti nella finestra della query, quindi fare clic su Esegui.
USE AdventureWorks2012; 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; GO USE AdventureWorks2012; GO -- Get the definition of the function dbo.ufnGetProductDealerPrice SELECT OBJECT_DEFINITION (OBJECT_ID('dbo.ufnGetProductDealerPrice')) AS ObjectDefinition; GO
Per ulteriori informazioni, vedere sys.sql_modules (Transact-SQL) e OBJECT_DEFINITION (Transact-SQL).
Per acquisire le dipendenze di una funzione
In Esplora oggetti connettersi a un'istanza del Motore di database.
Sulla barra Standard fare clic su Nuova query.
Copiare e incollare l'esempio seguente nella finestra Query, quindi fare clic su Esegui.
USE AdventureWorks2012; GO -- Get all of the dependency information SELECT OBJECT_NAME(sed.referencing_id) AS referencing_entity_name, o.type_desc AS referencing_desciption, 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
Per ulteriori informazioni, vedere sys.sql_expression_dependencies (Transact-SQL) e sys.objects (Transact-SQL).
[Top]