Visualización de funciones definidas por el usuario
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance
Puede obtener información sobre la definición o las propiedades de una función definida por el usuario en SQL Server 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.
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.
Permisos
El uso de sys.sql_expression_dependencies
de para buscar todas las dependencias de una función requiere 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.
Uso de SQL Server Management Studio
Mostrar las propiedades de una función definida por el usuario
En Explorador de objetos, seleccione el signo más junto a la base de datos que contiene la función de la que desea ver las propiedades y, a continuación, seleccione el signo más para expandir la carpeta Programabilidad.
Seleccione el signo más para expandir la carpeta Functions.
Seleccione el signo más para expandir la carpeta que contiene la función de la que desea ver las propiedades:
- Table-valued Function
- Función con valor escalar
- Función de agregado
Haga clic con el botón derecho en la función cuyas propiedades quiere ver y seleccione Propiedades.
Las propiedades siguientes aparecen en el cuadro de diálogo Propiedades de la función: nombre de función.
Nombre de función Descripción Base de datos Nombre de la base de datos que contiene esta función. Server 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
yFalse
.Valores NULL ANSI Indica si el objeto se ha creado con la opción Valores NULL ANSI. Cifrados Indica si la función está cifrada. Los valores son True
yFalse
.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 al esquema, consulte la sección SCHEMABINDING de CREATE FUNCTION (Transact-SQL).
Uso de Transact-SQL
Obtención de la definición y las propiedades de una función
En Explorador de objetos, conéctese a una instancia del motor de base de datos.
En la barra Estándar, seleccione Nueva consulta.
Copie y pegue uno de los ejemplos siguientes en la ventana de consulta y seleccione Ejecutar.
El ejemplo de código siguiente obtiene el nombre de la función, la definición y las propiedades pertinentes.
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; GO
El ejemplo de código siguiente obtiene la definición de la función de ejemplo
dbo.ufnGetProductDealerPrice
.USE AdventureWorks2022; 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, consulte sys.sql_modules (Transact-SQL) y OBJECT_DEFINITION (Transact-SQL).
Obtención de las dependencias de una función
En Explorador de objetos, conéctese a una instancia del motor de base de datos.
En la barra Estándar, seleccione Nueva consulta.
Copie y pegue el ejemplo siguiente en la ventana de consulta y seleccione Ejecutar.
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
Para obtener más información, consulte sys.sql_expression_dependencies (Transact-SQL) y sys.objects (Transact-SQL).