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.
Importante |
---|
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.
[Top]
Usar SQL Server Management Studio
Para mostrar las propiedades de una función definida por el usuario
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.
Haga clic en el signo más para expandir la carpeta Funciones.
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
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).
[Top]
Usar Transact-SQL
Para obtener la definición y propiedades de una función
En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
En la barra Estándar, haga clic en Nueva consulta.
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
En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.
En la barra Estándar, haga clic en Nueva consulta.
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).
[Top]