Eliminar funciones definidas por el usuario
Se aplica a: SQL Server Azure SQL Database
Puede eliminar (quitar) funciones definidas por el usuario en SQL Server mediante SQL Server Management Studio o Transact-SQL.
Limitaciones y restricciones
No podrá eliminar la función si hay funciones o vistas de Transact-SQL en la base de datos que hacen referencia a esta función y se crearon mediante SCHEMABINDING o si hay columnas calculadas, restricciones CHECK o restricciones DEFAULT que hacen referencia a la función.
No podrá eliminar la función si hay columnas calculadas que hacen referencia a esta función y se han indexado.
Permisos
Requiere el permiso ALTER en el esquema al que pertenece la función o el permiso CONTROL en la función.
Uso de SQL Server Management Studio
Seleccione el signo más junto a la base de datos que contiene la función que desea modificar.
Seleccione el signo más junto a la carpeta Programabilidad.
Seleccione el signo más junto a la carpeta que contiene la función que desea modificar:
- Table-valued Function
- Función con valor escalar
- Función de agregado
Haga clic con el botón derecho en la función que quiera eliminar y seleccione Eliminar.
En el cuadro de diálogo Eliminar objeto, seleccione Aceptar.
Seleccione Mostrar dependencias en el cuadro de diálogo Eliminar objeto para abrir el cuadro de diálogo Dependencias de function_name. De este modo, mostrará todos los objetos que dependen de la función y todos los objetos de los que la función depende.
Uso de Transact-SQL
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.
En el ejemplo de código siguiente se crea una función definida por el usuario:
-- creates function called "Sales.ufn_SalesByStore" USE AdventureWorks2022; GO CREATE FUNCTION Sales.ufn_SalesByStore (@storeid int) RETURNS TABLE AS RETURN ( SELECT P.ProductID, P.Name, SUM(SD.LineTotal) AS 'Total' FROM Production.Product AS P JOIN Sales.SalesOrderDetail AS SD ON SD.ProductID = P.ProductID JOIN Sales.SalesOrderHeader AS SH ON SH.SalesOrderID = SD.SalesOrderID JOIN Sales.Customer AS C ON SH.CustomerID = C.CustomerID WHERE C.StoreID = @storeid GROUP BY P.ProductID, P.Name ); GO
En el ejemplo de código siguiente se elimina la función definida por el usuario creada en el ejemplo anterior.
USE AdventureWorks2022; GO -- determines if function exists in database IF OBJECT_ID (N'Sales.fn_SalesByStore', N'IF') IS NOT NULL -- deletes function DROP FUNCTION Sales.fn_SalesByStore; GO