Share via


Ver funciones definidas por el usuario

Puede obtener información sobre la definición o las propiedades de una función definida por el usuario en SQL Server 2012 mediante SQL Server Management Studio o Transact-SQL. Es posible que necesite ver la definición de la función para entender cómo se derivan sus datos de las tablas de origen o para ver los datos que ella misma define.

Nota importanteImportante

Si cambia el nombre de un objeto al que hace referencia una función, deberá modificar esa función para que el texto refleje el nuevo nombre. Por tanto, antes de cambiar el nombre de un objeto, muestre primero las dependencias del objeto para determinar si alguna función va a verse afectada por el cambio propuesto.

En este tema

  • Antes de empezar:

    Seguridad

  • Para obtener información acerca de una función, usando:

    SQL Server Management Studio

    Transact-SQL

Antes de empezar

Seguridad

Permisos

El uso de sys.sql_expression_dependencies para buscar todas las dependencias de una función necesita el permiso VIEW DEFINITION en la base de datos y el permiso SELECT en sys.sql_expression_dependencies para la base de datos. Las definiciones de objetos del sistema, como las que se devuelven en OBJECT_DEFINITION, son visibles de forma pública.

Icono de flecha usado con el vínculo Volver al principio[Top]

Usar SQL Server Management Studio

Para mostrar las propiedades de una función definida por el usuario

  1. En el Explorador de objetos, haga clic en el signo más situado junto a la base de datos que contiene la función cuyas propiedades desea ver y haga clic en el signo más para expandir la carpeta Programación.

  2. Haga clic en el signo más para expandir la carpeta Funciones.

  3. Haga clic en el signo más para expandir la carpeta que contiene la función cuyas propiedades desea ver:

    • Función con valores de tabla

    • Función escalar

    • Función de agregado

  4. Haga clic con el botón secundario en la función cuyas propiedades desea ver y seleccione Propiedades.

    Las propiedades siguientes aparecen en el cuadro de diálogo Propiedades de la función – function_name.

    • Base de datos
      Nombre de la base de datos que contiene esta función.

    • Servidor
      Nombre de la instancia de servidor actual.

    • Usuario
      Nombre del usuario de esta conexión.

    • Fecha de creación
      Muestra la fecha de creación de la función.

    • Ejecutar como
      Contexto de ejecución para la función.

    • Nombre
      Nombre de la función actual.

    • Esquema
      Muestra el esquema al que pertenece la función.

    • Objeto de sistema
      Indica si la función es un objeto de sistema. Los valores son True y False.

    • Valores NULL ANSI
      Indica si el objeto se ha creado con la opción Valores NULL ANSI.

    • Cifrado
      Indica si la función está cifrada. Los valores son True y False.

    • Tipo de función
      Tipo de la función definida por el usuario.

    • Identificador entre comillas
      Indica si el objeto se ha creado con la opción Identificador entre comillas.

    • Enlazada a un esquema
      Indica si la función está enlazada a un esquema. Los valores son True y False. Para obtener información sobre las funciones enlazadas a esquema, vea la sección SCHEMABINDING de CREATE FUNCTION (Transact-SQL).

Icono de flecha usado con el vínculo Volver al principio[Top]

Usar Transact-SQL

Para obtener la definición y propiedades de una función

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.

  2. En la barra Estándar, haga clic en Nueva consulta.

  3. Copie y pegue uno de los ejemplos siguientes en la ventana de consulta y haga clic en Ejecutar.

    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
    

Para obtener más información, vea sys.sql_modules (Transact-SQL) y OBJECT_DEFINITION (Transact-SQL).

Para obtener las dependencias de una función

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.

  2. En la barra Estándar, haga clic en Nueva consulta.

  3. Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.

    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
    

Para obtener más información, vea sys.sql_expression_dependencies (Transact-SQL) y sys.objects (Transact-SQL).

Icono de flecha usado con el vínculo Volver al principio[Top]