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

ALTER PROCEDURE

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

ALTER PROCEDURE  [()] [LANGUAGE ] 

[DEFAULT SCHEMA ]

[READS SQL DATA] [] [ DETERMINISTIC ] [WITH ENCRYPTION] [AUTOCOMMIT DDL { ON|OFF } ] AS

BEGIN [SEQUENTIAL EXECUTION]

END

有关参数的详细信息,请参见 CREATE PROCEDURE

例如,使用 ALTER PROCEDURE 可以更改正文本身的内容。请考虑以下 GET_PROCEDURES 过程,该过程返回数据库中的所有过程名。

CREATE PROCEDURE GET_PROCEDURES(OUT procedures TABLE(schema_name NVARCHAR(256), name NVARCHAR(256)))

AS

BEGIN

procedures = SELECT schema_name AS schema_name, procedure_name AS name FROM PROCEDURES;

END;

现在应更改过程 GET_PROCEDURES 以仅返回有效过程。为此,请使用 ALTER PROCEDURE

ALTER PROCEDURE GET_PROCEDURES( OUT procedures TABLE(schema_name NVARCHAR(256), name NVARCHAR(256)))

AS

BEGIN

procedures = SELECT schema_name AS schema_name, procedure_name AS name FROM PROCEDURES WHERE IS_VALID = 'TRUE';

END;

除了更改过程主体外,您还可以更改过程的语言 、缺省模式 并将过程更改为只读模式 (READS SQL DATA)。

备注如果未显式指定缺省模式和只读模式,则会将其删除。缺省语言为 SQLScript。 备注您必须具有要更改对象的 ALTER 权限。