更改先前由CREATE FUNCTION 語句創建的現有用戶定義函數
語法
標量函數
ALTER FUNCTION [ owner_name
( [ { @parameter_name scalar_parameter_data_type [ = default ] } [
RETURNS scalar_return_data_type
[ WITH < function_option> [
[ AS ]
BEGIN
function_body
RETURN scalar_expression
END
內嵌表值函數
ALTER FUNCTION [ owner_name
( [ { @parameter_name scalar_parameter_data_type [ = default ] } [
RETURNS TABLE
[ WITH < function_option > [
[ AS ]
RETURN [ ( ] select
多語句表值函數
ALTER FUNCTION [ owner_name
( [ { @parameter_name scalar_parameter_data_type [ = default ] } [
RETURNS @return_variable TABLE < table_type_definition >
[ WITH < function_option > [
[ AS ]
BEGIN
function_body
RETURN
END
< function_option > ::=
{ ENCRYPTION | SCHEMABINDING }
< table_type_definition > ::=
( { column_definition | table_constraint } [
參數
owner_name
擁有待更改的用戶定義函數的用戶 ID 名
function_name
是要更改的用戶定義函數
@parameter_name
用戶定義函數的參數
使用 @ 符號作為第一個字符來指定參數名稱
scalar_parameter_data_type
參數的數據類型
scalar_return_data_type
是標量用戶定義函數的返回值
scalar_expression
指定標量函數返回標量值
TABLE
指定表值函數的返回值為表
在內嵌表值函數中
在多語句表值函數中
function_body
指定一組 Transact
在標量函數中
在多語句表值函數中
select
是定義內嵌表值函數返回值的單個 SELECT 語句
ENCRYPTION
指出 SQL Server 加密包含 CREATE FUNCTION 語句文本的系統表列
SCHEMABINDING
指定將函數綁定到它所引用的數據庫對象
函數與其所引用對象的綁定關系只有在發生以下兩種情況之一時才被解除
除去了函數
在未指定 SCHEMABINDING 選項的情況下更改了函數(使用 ALTER 語句)
有關函數綁定到架構所必須滿足的條件列表
注釋
不能用 ALTER FUNCTION 將標量值函數更改為表值函數
權限
ALTER FUNCTION 權限默認授予 sysadmin 固定服務器角色成員
函數的所有者對其函數具有 EXECUTE 權限
From:http://tw.wingwit.com/Article/os/xtgl/201311/8789.html