解讀SQL存儲過程入門級教程(2)_Mssql數據庫教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:按指定排列順序獲取數據的sql語句
      測試table create table table1 (id int,name char) insert into table1 select 1,'q' union all select 2,'r' union all select 3,'3' union all select 4,'5' 要求按指定的id順序(比如2,1,4,3)排列獲取table1的數據 方法1: 使用union all,但是有256條數據的


      (4) 存儲過程可被作為一種安全機制來充分利用

      系統管理員通過對執行某一存儲過程的權限進行限制,從而能夠實現對相應的數據訪問權限的限制,避免非授權用戶對數據的訪問,保證數據的安全。(我們將在14 章“SQLServer 的用戶和安全性管理”中對存儲過程的這一應用作更為清晰的介紹)

      注意:存儲過程雖然既有參數又有返回值,但是它與函數不同。存儲過程的返回值只是指明執行是否成功,并且它不能像函數那樣被直接調用,也就是在調用存儲過程時,在存儲過程名字前一定要有EXEC保留字。 

      2.SQL存儲過程創建

      創建存儲過程,存儲過程是保存起來的可以接受和返回用戶提供的參數的 Transact-SQL 語句的集合。

      可以創建一個過程供永久使用,或在一個會話中臨時使用(局部臨時過程),或在所有會話中臨時使用(全局臨時過程)。

      也可以創建在 Microsoft? SQL Server? 啟動時自動運行的存儲過程。

      語法
        CREATE 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

      新存儲過程的名稱。過程名必須符合標識符規則,且對于數據庫及其所有者必須唯一。
      要創建局部臨時過程,可以在 procedure_name 前面加一個編號符 (#procedure_name),要創建全局臨時過程,可以在 procedure_name 前面加兩個編號符 (##procedure_name)。完整的名稱(包括 # 或 ##)不能超過 128 個字符。指定過程所有者的名稱是可選的。

      ;number

      是可選的整數,用來對同名的過程分組,以便用一 條 DROP PROCEDURE 語句即可將同組的過程一起除去。例如,名為 orders 的應用程序使用的過程可以命名為 orderproc;1、orderproc;2 等。DROP PROCEDURE orderproc 語句將除去整個組。如果名稱中包含定界標識符,則數字不應包含在標識符中,只應在 procedure_name 前后使用適當的定界符。

      @parameter

      過程中的參數。在 CREATE PROCEDURE 語句中可以聲明一個或多個參數。用戶必須在執行過程時提供每個所聲明參數的值(除非定義了該參數的默認值)。存儲過程最多可以有 2.100 個參數。

      使用 @ 符號作為第一個字符來指定參數名稱。參數名稱必須符合標識符的規則。每個過程的參數僅用于該過程本身;相同的參數名稱可以用在其它過程中。默認情況下,參數只能代替常量,而不能用于代替表名、列名或其它數據庫對象的名稱。
      data_type

      參數的數據類型。所有數據類型(包括 text、ntext 和 image)均可以用作存儲過程的參數。不過,cursor 數據類型只能用于 OUTPUT 參數。如果指定的數據類型為 cursor,也必須同時指定 VARYING 和 OUTPUT 關鍵字。

      說明 對于可以是 cursor 數據類型的輸出參數,沒有最大數目的限制。


      VARYING

      指定作為輸出參數支持的結果集(由存儲過程動態構造,內容可以變化)。僅適用于游標參數。

      分享:總結經典常用的SQL語句(2)
      向表中添加一個新記錄,你要使用SQLINSERT語句。 這里有一個如何使用這種語句的例子: INSERTmytable(mycolumn)VALUES(‘somedata’) 這個語句把字符串’somedata’插入表mytable的mycolumn字段中。將要被插入數據的字段的名字在第一個括號中指定,實際的數

      來源:模板無憂//所屬分類:Mssql數據庫教程/更新時間:2010-04-06
      相關Mssql數據庫教程