此语句用于修改过程,或启用和禁用使用 Sybase 复制服务器对该过程进行复制。必须在 ALTER PROCEDURE 语句中包括整个新过程。
可使用 PROC 作为 PROCEDURE 的同义词。
ALTER PROCEDURE [ owner.]procedure-name procedure-definition
procedure-definition : CREATE PROCEDURE syntax
ALTER PROCEDURE [ owner.]procedure-name REPLICATE { ON | OFF }
ALTER PROCEDURE [ owner.]procedure-name SET HIDDEN
ALTER PROCEDURE [ owner.]procedure-name RECOMPILE
语法 1 除第一个单词不同外,ALTER PROCEDURE 语句的语法与 CREATE PROCEDURE 语句的语法相同。两种语法形式的 CREATE PROCEDURE 语句都可以这样更改。
系统会保留对过程的现有权限,因此不必重新指派。如果执行了 DROP PROCEDURE 和 CREATE PROCEDURE,则必须重新分配执行权限。
语法 2 如果要使用 Sybase 复制服务器将一个过程复制到其它站点,则必须对该过程设置 REPLICATE ON。
语法 3 使用 SET HIDDEN 对关联过程的定义进行模糊处理,使之不可读。可以卸载该过程,然后将其重装到其它数据库中。
此设置是不可逆的。如果再次需要原始源,则必须将它保存在数据库之外。
如果使用 SET HIDDEN,则使用调试程序进行调试将不会显示过程定义,也无法通过过程分析获得过程定义。
语法 2 不可与语法 1 合并使用。语法 3 不可与语法 1 合并使用,也不可与语法 2 合并使用。
语法 4 使用 RECOMPILE 语法重新编译存储的过程。当重新编译一个过程时,存储在目录中的定义被重新分析,其语法也被验证。对于生成结果集但不包含 RESULT 子句的过程,数据库服务器会尝试确定过程结果集的特点,并将信息存储在目录中。如果自过程创建以来,过程所引用的表发生变更,从而添加、删除或重命名了列,这些信息会很有用。
重新编译不会更改过程的定义。可以重新编译使用 SET HIDDEN 子句隐藏其定义的过程,但其定义仍是隐藏的。
必须是过程的所有者或者具有 DBA 权限。
自动提交。
SQL/2003 服务商扩充。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |