您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

ALTER FUNCTION

如果要在不删除对象的情况下更改函数的内容和属性,可以使用 ALTER FUNCTION

ALTER FUNCTION 

{

[ ( ) ]

[ RETURNS ]

[ LANGUAGE ]

[ SQL SECURITY { DEFINER | INVOKER } ]

[ DEFAULT SCHEMA ]

[ ]

[ DETERMINISTIC ]

[ WITH ENCRYPTION ]

[ [ NO ] STRUCTURED FILTER CHECK ]

AS

[ HEADER ONLY ON INVALID ]

BEGIN

END

|

ALTER FUNCTION ENCRYPTION ON

}

有关参数的详细信息,请参阅 CREATE FUNCTION。例如,使用 ALTER FUNCTION 可以更改正文本身的内容。请考虑以下返回数据库上所有函数名的过程 GET_FUNCTIONS。

CREATE FUNCTION GET_FUNCTIONS

returns TABLE(schema_name NVARCHAR(256),

name NVARCHAR(256))

AS

BEGIN

return SELECT schema_name AS schema_name,

function_name AS name

FROM FUNCTIONS;

END;

现在应更改函数 GET_FUNCTIONS 以仅返回有效函数。为此,我们将使用 ALTER FUNCTION

ALTER FUNCTION  GET_FUNCTIONS

returns TABLE(schema_name NVARCHAR(256),

name NVARCHAR(256))

AS

BEGIN

return SELECT schema_name AS schema_name,

function_name AS name

FROM FUNCTIONS

WHERE IS_VALID = 'TRUE';

END;

除了更改函数主体外,您还可以更改缺省模式

备注如果未显式指定缺省模式,则会将其移除。 备注您需要更改对象的 ALTER 权限。