Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Определяемые пользователем функции в SQL Server 2012 можно удалить с помощью среды Среда SQL Server Management Studio или Transact-SQL
В этом разделе
Перед началом работы выполните следующие действия.
Ограничения
Безопасность
Для удаления определяемой пользователем функции используются
Среда SQL Server Management Studio
Transact-SQL
Перед началом
Ограничения
Удалить функцию не удастся, если в базе данных имеются функции Transact-SQL или представления, которые ссылаются на эту функцию и были созданы с помощью SCHEMABINDING, или при наличии вычисляемых столбцов, ограничений CHECK либо DEFAULT, которые ссылаются на эту функцию.
Удалить функцию не удастся, если имеются вычисляемые столбцы, которые ссылаются на эту функцию и были индексированы.
Безопасность
Разрешения
Необходимо разрешение ALTER на схему, которой принадлежит функция, или разрешение CONTROL на функцию.
[Top]
Использование среды SQL Server Management Studio
Удаление определяемой пользователем функции
Щелкните значок плюса рядом с базой данных, содержащей функцию, которую надо изменить.
Щелкните значок плюса рядом с папкой Программирование.
Щелкните значок плюса рядом с папкой, содержащей функцию, которую надо изменить.
Функция с табличным значением
Скалярная функция
Агрегатная функция
Щелкните правой кнопкой мыши функцию, которую нужно удалить, и выберите пункт Удалить.
В диалоговом окне Удаление объекта нажмите кнопку ОК.
Важно!Щелкните Показать зависимости в диалоговом окне Удаление объекта, чтобы открыть диалоговое окно function_name Зависимости. При этом будут отображены все объекты, зависящие от функции, и все объекты, от которых зависит функция.
[Top]
Использование Transact-SQL
Удаление определяемой пользователем функции
В обозревателе объектов установите соединение с экземпляром компонента Компонент Database Engine.
На стандартной панели выберите пункт Создать запрос.
Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить.
-- creates function called “Sales.ufn_SalesByStore” USE AdventureWorks2012; 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 USE AdventureWorks2012; 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
Дополнительные сведения см. в разделе DROP FUNCTION (Transact-SQL).
[Top]