Condividi tramite


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.

Nota importanteImportante

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.

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Utilizzo di SQL Server Management Studio

Per mostrare le proprietà di una funzione definita dall'utente

  1. 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à.

  2. Fare clic sul segno più per espandere la cartella Funzioni.

  3. 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

  4. 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).

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]

Utilizzo di Transact-SQL

Per acquisire la definizione e le proprietà di una funzione

  1. In Esplora oggetti connettersi a un'istanza del Motore di database.

  2. Sulla barra Standard fare clic su Nuova query.

  3. 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

  1. In Esplora oggetti connettersi a un'istanza del Motore di database.

  2. Sulla barra Standard fare clic su Nuova query.

  3. 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).

Icona freccia utilizzata con il collegamento Torna all'inizio[Top]