¿Cómo llamar funciones de SQL Server desde scripts Transact-SQL?
Tutorial sobre cómo llamar a una función de SQL Server usando scripts T-SQL, con y sin parámetros. En efecto, la sintaxis T-SQL para llamar a una función difiere de la utilizada para invocar un procedimiento almacenado. Usa la función de SQL Server de la misma manera que seleccionas datos de una tabla. Aprender a llamar a una función definida por el usuario en SQL Server con un script T-SQL es esencial para optimizar el mantenimiento de tu base de datos y facilitar la manipulación de datos.
En este tutorial de SQL, examinaremos cómo usar una función definida por el usuario y cómo personalizar la salida de la función para satisfacer necesidades específicas. Una función definida por el usuario en SQL Server es un programa Transact-SQL que acepta parámetros de entrada. Cuando se llama, realiza acciones, como leer una tabla de SQL Server, y devuelve un resultado de salida.
1. El parámetro de entrada no es obligatorio en una función de SQL Server
Una función no necesariamente tiene que tener un parámetro de entrada. Sin embargo, una función definida por el usuario en SQL Server devuelve datos, que pueden ser un conjunto de resultados vacío, una sola fila o múltiples columnas. Por ejemplo, si llamamos a la función creada en este tutorial para crear una función en MS SQL con un script. Por ejemplo, si llamas a la función integrada para mostrar la fecha en SQL Server, el sistema devuelve la fecha actual.
SELECT GETDATE();
2. El resultado de salida es obligatorio en funciones T-SQL
De hecho, se define una función por el hecho de que devuelve un resultado. Para llamar a una función, abre SSMS y adapta el código de la función si es necesario. Considera este script para crear una función llamada dbo.ufnDisplayCustomers en T-SQL:
CREATE FUNCTION dbo.ufnDisplayCustomers(@CustomerID INTEGER) RETURNS NVARCHAR(20) AS BEGIN DECLARE @CustomerName AS NVARCHAR(20); SELECT @CustomerName = [Name] FROM [dbo].[Customers] WHERE [CustomerID] = @CustomerID; RETURN @CustomerName; END GO
Para llamar a una función de SQL Server, utiliza la siguiente sintaxis:
SELECT dbo.FunctionName(Parameters);
La función a continuación muestra el nombre de un cliente asociado con el número de cliente pasado como parámetro. Por supuesto, asumimos que tienes una tabla con al menos estas dos columnas, como en el ejemplo.
- CustomerID
- Name
/* Expert-Only.com */ SELECT [CustomerID] ,[Name] FROM [Expert-Only].[dbo].[Customers]; /* Expert-Only.com */ SELECT dbo.ufnDisplayCustomers(1);
3. Llamar a una función de SQL Server y renombrar la columna de salida
Con este segundo ejemplo de llamada, también podemos renombrar la columna de resultado para personalizar la salida. Para hacerlo, usa la sintaxis genérica a continuación:
SELECT dbo.FunctionName(Parameters) AS [NewColumnName];
A continuación, un ejemplo práctico, usando datos de Clientes, así la función se utiliza para mostrar el nombre de los clientes basado en el ID del cliente, luego la columna de resultado se renombra como CustomerName, de la misma manera que se renombran las columnas en consultas SELECT de SQL Server.
SELECT dbo.ufnDisplayCustomers(1) AS [CustomerName];
En este otro tutorial, explicamos cómo modificar una función existente de SQL Server. Para obtener información más profunda y oficial sobre funciones definidas por el usuario en SQL Server, lee la documentación directamente en el sitio web de Microsoft. La documentación en inglés generalmente es más rica y completa que en otros idiomas, incluido el francés. El foro oficial de Microsoft sobre bases de datos y las páginas de soporte en inglés también son mucho más activas que en otros idiomas.
Acerca de llamar a funciones de SQL Server desde scripts T-SQL
En conclusión, vimos cómo llamar a una función de SQL Server desde un script T-SQL, es una operación necesaria para optimizar y especialmente reutilizar código de manera eficiente en tu base de datos. Este tutorial te ha mostrado cómo crear, llamar y personalizar funciones de SQL Server. Al dominar estas técnicas, podrás sacar el máximo provecho de tu base de datos SQL Server y mejorar significativamente el rendimiento de tus aplicaciones.