Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 语句 » SQL 语句 (A-D)

 

ALTER PROCEDURE 语句

此语句用于修改过程,或启用和禁用使用 Sybase 复制服务器对该过程进行复制。必须在 ALTER PROCEDURE 语句中包括整个新过程。

可使用 PROC 作为 PROCEDURE 的同义词。

语法 1
ALTER PROCEDURE [ owner.]procedure-name procedure-definition
procedure-definition : CREATE PROCEDURE syntax
语法 2
ALTER PROCEDURE [ owner.]procedure-name
REPLICATE { ON | OFF }
语法 3
ALTER PROCEDURE [ owner.]procedure-name 
SET HIDDEN
语法 4
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   服务商扩充。