Funciones definidas por el usuario en AdventureWorks
La base de datos OLTP de ejemplo AdventureWorks incluye varias funciones Transact-SQL definidas por el usuario. Los ejemplos de las funciones CLR (Common Language Runtime) definidas por el usuario se encuentran en Ejemplos de programación de CLR.
Funciones CLR definidas por el usuario
En la tabla siguiente se enumeran los ejemplos de las funciones CLR definidas por el usuario que están disponibles. Para obtener más información acerca de estas funciones, vea CLR User-Defined Functions.
Ejemplo | Descripción |
---|---|
Manipulación de cadenas que detectan caracteres complementarios |
Muestra la implementación de cinco funciones de cadena Transact-SQL que proporcionan las mismas funciones de modificación de cadenas que las funciones integradas, pero con una capacidad adicional que detecta caracteres para controlar cadenas de caracteres Unicode y caracteres complementarios. Las cinco funciones son: len_s(), left_s(), right_s(), sub_s() y replace_s(). Estas funciones son equivalentes a las funciones de cadena integradas LEN(), LEFT(), RIGHT(), SUBSTRING() y REPLACE(). |
Contiene varias funciones que demuestran distintas características del proveedor de acceso a datos en curso SQLCLR. |
|
Contiene una función de transmisión por secuencias con valores de tabla, escrita en C# y Microsoft Visual Basic, que divide una cadena separada por comas en una tabla con una columna. También contiene una función de agregado que convierte una columna de cadenas en una cadena separada por comas. |
|
Contiene una función de conversión de monedas que devuelve una instancia de un tipo de moneda definido por el usuario. |
|
Incluye funciones para exponer metadatos de ensamblado a Transact-SQL, funciones de valor de tabla de transmisión por secuencias de ejemplo para devolver los tipos de datos de un ensamblado en una tabla, así como funciones para devolver los campos, los métodos y las propiedades en un tipo definido por el usuario. Demuestra tecnologías como las funciones de transmisión por secuencias con valores de tabla, API de reflexión de Microsoft .NET Framework y la invocación de funciones con valores de tabla de Transact-SQL. |
Funciones Transact-SQL definidas por el usuario
En la tabla siguiente se enumeran las funciones Transact-SQL definidas por el usuario que se incluyen en la base de datos OLTP de ejemplo AdventureWorks. Para obtener más información acerca de las funciones de Transact-SQL definidas por el usuario, vea Descripción de funciones definidas por el usuario.
Función definida por el usuario | Descripción | Parámetros de entrada | Valores devueltos |
---|---|---|---|
ufnLeadingZeros |
Función escalar que agrega ceros iniciales a un valor entero determinado. La función devuelve un tipo de datos varchar(8). |
@valueint |
@ReturnValuevarchar(8) |
ufnGetContactInformation |
Simplifica el acceso del usuario a los datos, ya que encapsula una consulta compleja en una función con valores de tabla. |
@contactidint |
ContactIDint, FirstNamenvarchar(50), LastNamenvarchar(50), JobTitlenvarchar(50), ContactTypenvarchar(50) |
ufnGetProductDealerPrice |
Función escalar que calcula el precio de mayorista para un producto específico en función del precio listado del producto en una fecha determinada. |
@productIDint, @orderdate datetime |
@DealerPricemoney |
Ejemplos
A. Usar dbo.ufnLeadingZeros
En el ejemplo siguiente se utiliza la función ufnLeadingZeros
para generar un número de cuenta de cliente a partir de una columna CustomerID
existente en la tabla Customer
.
USE AdventureWorks;
GO
SELECT CustomerID,('AW' + dbo.ufnLeadingZeros(CustomerID))
AS GenerateAccountNumber
FROM Sales.Customer
ORDER BY CustomerID;
GO
B. Usar dbo.ufnGetContactInformation
La base de datos AdventureWorks contiene los nombres de los empleados, los clientes (representantes de ventas o clientes individuales) y presentantes del proveedor en una tabla, la tabla Contact. La función con valores de tabla ufnGetContactInformation
devuelve una fila para un ContactID
determinado.
USE AdventureWorks;
GO
SELECT ContactID, FirstName, LastName, JobTitle, ContactType
FROM dbo.ufnGetContactInformation(2200);
GO
SELECT ContactID, FirstName, LastName, JobTitle, ContactType
FROM dbo.ufnGetContactInformation(5);
GO
C. Usar dbo.ufnGetProductDealerPrice
El ejemplo siguiente utiliza la función ufnGetProductDealerPrice
para devolver el precio de mayorista con descuento para todos los productos de la tabla ProductListPriceHistory
.
USE AdventureWorks;
GO
SELECT ProductID, ListPrice, dbo.ufnGetProductDealerPrice(ProductID, StartDate) AS DealerPrice,
StartDate, EndDate
FROM Production.ProductListPriceHistory
WHERE ListPrice > .0000
ORDER BY ProductID, StartDate;
Vea también
Otros recursos
Objetos de SQL Server en AdventureWorks
CREATE FUNCTION (Transact-SQL)