熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

ALTER PROCEDURE

2013-11-11 21:29:21  來源: Windows系統管理 

  ALTER PROCEDURE
  更改先前通過執行 CREATE PROCEDURE 語句創建的過程但不會更改權限也不影響相關的存儲過程或觸發器有關 ALTER PROCEDURE 語句所用參數的更多信息請參見 CREATE PROCEDURE(點擊查看)
  語法
  ALTER PROC [ EDURE ] procedure_name [ ; number ]
   [ { @parameter data_type }
   [ VARYING ] [ = default ] [ OUTPUT ]
   ] [ n ]
  
  [ WITH
   { RECOMPILE | ENCRYPTION
   | RECOMPILE ENCRYPTION
   }
  ]
  [ FOR REPLICATION ]
  AS
   sql_statement [ n ]
  
  參數
  procedure_name
  
  是要更改的過程的名稱過程名稱必須符合標識符規則
  
  ;number
  
  是現有的可選整數該整數用來對具有同一名稱的過程進行分組以便可以用一條 DROP PROCEDURE 語句全部除去它們
  
  @parameter
  
  過程中的參數
  
  data_type
  
  是參數的數據類型
  
  VARYING
  
  指定作為輸出參數支持的結果集(由存儲過程動態構造內容可以變化)僅適用於游標參數
  
  default
  
  參數的默認值
  
  OUTPUT
  
  表明參數是返回參數
  
  n
  
  是表示最多可指定 個參數的占位符
  
  {RECOMPILE | ENCRYPTION | RECOMPILE ENCRYPTION}
  
  RECOMPILE 表明 Microsoft® SQL Server&#; 不會高速緩存該過程的計劃該過程將在運行時重新編譯
  
  ENCRYPTION 表示 SQL Server 加密 syscomments 表中包含 ALTER PROCEDURE 語句文本的條目使用 ENCRYPTION 可防止將過程作為 SQL Server 復制的一部分發布
  
  
  
  說明 在升級過程中SQL Server 利用存儲在 syscomments 中的加密注釋來重新創建加密過程
  
  
  FOR REPLICATION
  
  指定不能在訂閱服務器上執行為復制創建的存儲過程使用 FOR REPLICATION 選項創建的存儲過程可用作存儲過程篩選且只能在復制過程中執行本選項不能和 WITH RECOMPILE 選項一起使用
  
  AS
  
  過程將要執行的操作
  
  sql_statement
  
  過程中要包含的任意數目和類型的 TransactSQL 語句但有一些限制有關更多信息請參見 CREATE PROCEDURE 中的sql_statement 限制
  n
  
  是表示該過程中可以包含多條 TransactSQL 語句的占位符有關更多信息請參見 CREATE PROCEDURE
  
  
  注釋
  有關 ALTER PROCEDURE的更多信息參閱 CREATE PROCEDURE 中的注釋
  說明 如果原來的過程定義是用 WITH ENCRYPTION 或 WITH RECOMPILE 創建的那麼只有在 ALTER PROCEDURE 中也包含這些選項時這些選項才有效
  
  
  權限
  ALTER PROCEDURE 權限默認授予 sysadmin 固定服務器角色成員db_owner 和 db_ddladmin 固定數據庫角色成員和過程的所有者且不可轉讓
  
  用 ALTER PROCEDURE 更改的過程的權限和啟動屬性保持不變
  
  示例
  下例創建稱為 Oakland_authors 的過程默認情況下該過程包含所有來自加利福尼亞州奧克蘭市的作者隨後授予了權限然後當該過程需更改為能夠檢索所有來自加利福尼亞州的作者時用 ALTER PROCEDURE 重新定義了該存儲過程
  
  USE pubs
  GO
  IF EXISTS(SELECT name FROM sysobjects WHERE name = Oakland_authors AND type = P)
   DROP PROCEDURE Oakland_authors
  GO
   Create a procedure from the authors table that contains author
   information for those authors who live in Oakland California
  USE pubs
  GO
  CREATE PROCEDURE Oakland_authors
  AS
  SELECT au_fname au_lname address city zip
  FROM pubsauthors
  WHERE city = Oakland
  and state = CA
  ORDER BY au_lname au_fname
  GO
   Here is the statement to actually see the text of the procedure
  SELECT oid ctext
  FROM sysobjects o INNER JOIN syscomments c ON oid = cid
  WHERE otype = P and oname = Oakland_authors
   Here EXECUTE permissions are granted on the procedure to public
  GRANT EXECUTE ON Oakland_authors TO public
  GO
   The procedure must be changed to include all
   authors from California regardless of what city they live in
   If ALTER PROCEDURE is not used but the procedure is dropped
   and then recreated the above GRANT statement and any
   other statements dealing with permissions that pertain to this
   procedure must be reentered
  ALTER PROCEDURE Oakland_authors
  WITH ENCRYPTION
  AS
  SELECT au_fname au_lname address city zip
  FROM pubsauthors
  WHERE state = CA
  ORDER BY au_lname au_fname
  GO
   Here is the statement to actually see the text of the procedure
  SELECT oid ctext
  FROM sysobjects o INNER JOIN syscomments c ON oid = cid
  WHERE otype = P and oname = Oakland_authors
  GO

From:http://tw.wingwit.com/Article/os/xtgl/201311/8567.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.