解讀SQL存儲(chǔ)過(guò)程入門級(jí)教程(2)_Mssql數(shù)據(jù)庫(kù)教程
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!
推薦:按指定排列順序獲取數(shù)據(jù)的sql語(yǔ)句測(cè)試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的數(shù)據(jù) 方法1: 使用union all,但是有256條數(shù)據(jù)的
(4) 存儲(chǔ)過(guò)程可被作為一種安全機(jī)制來(lái)充分利用
系統(tǒng)管理員通過(guò)對(duì)執(zhí)行某一存儲(chǔ)過(guò)程的權(quán)限進(jìn)行限制,從而能夠?qū)崿F(xiàn)對(duì)相應(yīng)的數(shù)據(jù)訪問(wèn)權(quán)限的限制,避免非授權(quán)用戶對(duì)數(shù)據(jù)的訪問(wèn),保證數(shù)據(jù)的安全。(我們將在14 章“SQLServer 的用戶和安全性管理”中對(duì)存儲(chǔ)過(guò)程的這一應(yīng)用作更為清晰的介紹)
注意:存儲(chǔ)過(guò)程雖然既有參數(shù)又有返回值,但是它與函數(shù)不同。存儲(chǔ)過(guò)程的返回值只是指明執(zhí)行是否成功,并且它不能像函數(shù)那樣被直接調(diào)用,也就是在調(diào)用存儲(chǔ)過(guò)程時(shí),在存儲(chǔ)過(guò)程名字前一定要有EXEC保留字。
2.SQL存儲(chǔ)過(guò)程創(chuàng)建
創(chuàng)建存儲(chǔ)過(guò)程,存儲(chǔ)過(guò)程是保存起來(lái)的可以接受和返回用戶提供的參數(shù)的 Transact-SQL 語(yǔ)句的集合。
可以創(chuàng)建一個(gè)過(guò)程供永久使用,或在一個(gè)會(huì)話中臨時(shí)使用(局部臨時(shí)過(guò)程),或在所有會(huì)話中臨時(shí)使用(全局臨時(shí)過(guò)程)。
也可以創(chuàng)建在 Microsoft? SQL Server? 啟動(dòng)時(shí)自動(dòng)運(yùn)行的存儲(chǔ)過(guò)程。
語(yǔ)法
CREATE PROC [ EDURE ] procedure_name [ ; number ]
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,...n ]
[ WITH
{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]
[ FOR REPLICATION ]
AS sql_statement [ ...n ]
參數(shù)
procedure_name
新存儲(chǔ)過(guò)程的名稱。過(guò)程名必須符合標(biāo)識(shí)符規(guī)則,且對(duì)于數(shù)據(jù)庫(kù)及其所有者必須唯一。
要?jiǎng)?chuàng)建局部臨時(shí)過(guò)程,可以在 procedure_name 前面加一個(gè)編號(hào)符 (#procedure_name),要?jiǎng)?chuàng)建全局臨時(shí)過(guò)程,可以在 procedure_name 前面加兩個(gè)編號(hào)符 (##procedure_name)。完整的名稱(包括 # 或 ##)不能超過(guò) 128 個(gè)字符。指定過(guò)程所有者的名稱是可選的。
;number
是可選的整數(shù),用來(lái)對(duì)同名的過(guò)程分組,以便用一 條 DROP PROCEDURE 語(yǔ)句即可將同組的過(guò)程一起除去。例如,名為 orders 的應(yīng)用程序使用的過(guò)程可以命名為 orderproc;1、orderproc;2 等。DROP PROCEDURE orderproc 語(yǔ)句將除去整個(gè)組。如果名稱中包含定界標(biāo)識(shí)符,則數(shù)字不應(yīng)包含在標(biāo)識(shí)符中,只應(yīng)在 procedure_name 前后使用適當(dāng)?shù)亩ń绶?
@parameter
過(guò)程中的參數(shù)。在 CREATE PROCEDURE 語(yǔ)句中可以聲明一個(gè)或多個(gè)參數(shù)。用戶必須在執(zhí)行過(guò)程時(shí)提供每個(gè)所聲明參數(shù)的值(除非定義了該參數(shù)的默認(rèn)值)。存儲(chǔ)過(guò)程最多可以有 2.100 個(gè)參數(shù)。
使用 @ 符號(hào)作為第一個(gè)字符來(lái)指定參數(shù)名稱。參數(shù)名稱必須符合標(biāo)識(shí)符的規(guī)則。每個(gè)過(guò)程的參數(shù)僅用于該過(guò)程本身;相同的參數(shù)名稱可以用在其它過(guò)程中。默認(rèn)情況下,參數(shù)只能代替常量,而不能用于代替表名、列名或其它數(shù)據(jù)庫(kù)對(duì)象的名稱。
data_type
參數(shù)的數(shù)據(jù)類型。所有數(shù)據(jù)類型(包括 text、ntext 和 image)均可以用作存儲(chǔ)過(guò)程的參數(shù)。不過(guò),cursor 數(shù)據(jù)類型只能用于 OUTPUT 參數(shù)。如果指定的數(shù)據(jù)類型為 cursor,也必須同時(shí)指定 VARYING 和 OUTPUT 關(guān)鍵字。
說(shuō)明 對(duì)于可以是 cursor 數(shù)據(jù)類型的輸出參數(shù),沒(méi)有最大數(shù)目的限制。
VARYING
指定作為輸出參數(shù)支持的結(jié)果集(由存儲(chǔ)過(guò)程動(dòng)態(tài)構(gòu)造,內(nèi)容可以變化)。僅適用于游標(biāo)參數(shù)。
分享:總結(jié)經(jīng)典常用的SQL語(yǔ)句(2)向表中添加一個(gè)新記錄,你要使用SQLINSERT語(yǔ)句。 這里有一個(gè)如何使用這種語(yǔ)句的例子: INSERTmytable(mycolumn)VALUES(‘somedata’) 這個(gè)語(yǔ)句把字符串’somedata’插入表mytable的mycolumn字段中。將要被插入數(shù)據(jù)的字段的名字在第一個(gè)括號(hào)中指定,實(shí)際的數(shù)
相關(guān)Mssql數(shù)據(jù)庫(kù)教程:
- sql 語(yǔ)句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無(wú)法查看數(shù)據(jù)庫(kù),提示 無(wú)法為該請(qǐng)求檢索數(shù)據(jù) 錯(cuò)誤916解決方法
- SQLServer日志清空語(yǔ)句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲(chǔ)過(guò)程參數(shù)的用法實(shí)例詳解
Mssql數(shù)據(jù)庫(kù)教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫(kù)教程推薦
- 談SQL Server數(shù)據(jù)庫(kù)管理常用的SQL和T-SQL語(yǔ)句
- order by newid() 各種數(shù)據(jù)庫(kù)隨機(jī)查詢的方法
- 查詢表中某字段有重復(fù)記錄個(gè)數(shù)的方法
- 教你SQL Server日志清除的兩種方法
- SQL Server中怎么得到自動(dòng)編號(hào)字段解析
- SQL Server 2005 CE軟件環(huán)境需求
- SQL Server數(shù)據(jù)庫(kù)備份和恢復(fù)說(shuō)明
- 解答SQL Server日志文件損壞嚴(yán)重的問(wèn)題
- 怎樣用SQL Server事件探查器創(chuàng)建跟蹤
- 詳解SQL Server 2008中的聯(lián)機(jī)事務(wù)處理
猜你也喜歡看這些
- mysql 導(dǎo)入導(dǎo)出數(shù)據(jù)庫(kù)以及函數(shù)、存儲(chǔ)過(guò)程的介紹
- mysql密碼過(guò)期導(dǎo)致連接不上mysql
- MySQL的安全問(wèn)題從安裝開(kāi)始說(shuō)起
- Mysql建表與索引使用規(guī)范詳解
- mysql與mysqli的區(qū)別與用法
- MYSQL索引無(wú)效和索引有效的詳細(xì)介紹
- 解決sql server 2005 express中sa不能登錄
- mysql常用設(shè)置:字符集編碼、自動(dòng)完成(自動(dòng)提示)、監(jiān)聽(tīng)外網(wǎng)ip
- jdbc調(diào)用mysql存儲(chǔ)過(guò)程實(shí)現(xiàn)代碼
- mysql 定時(shí)更新表字段列的值狀態(tài)
- 相關(guān)鏈接:
- 教程說(shuō)明:
Mssql數(shù)據(jù)庫(kù)教程-解讀SQL存儲(chǔ)過(guò)程入門級(jí)教程(2)
。