一、自定義函數:
1. 可以返回表變量
2. 限制頗多,包括
不能使用output參數;
不能用臨時表;
函數內部的操作不能影響到外部環境;
不能通過select返回結果集;
不能update,delete,數據庫表;
3. 必須return 一個標量值或表變量
自定義函數一般用在復用度高,功能簡單單一,爭對性強的地方。
二、存儲過程
1. 不能返回表變量
2. 限制少,可以執行對數據庫表的操作,可以返回數據集
3. 可以return一個標量值,也可以省略return
存儲過程一般用在實現復雜的功能,數據操縱方面。
=========================================================================
SqlServer存儲過程--實例
實例1:只返回單一記錄集的存儲過程。
表銀行存款表(bankMoney)的內容如下
Id
userID
Sex
Money
001
Zhangsan
男
30
002
Wangwu
男
50
003
Zhangsan
男
40
要求1:查詢表bankMoney的內容的存儲過程
create procedure sp_query_bankMoneyasselect * from bankMoneygoexec sp_query_bankMoney
注* 在使用過程中只需要把T-Sql中的SQL語句替換為存儲過程名,就可以了很方便吧!
實例2(向存儲過程中傳遞參數):
加入一筆記錄到表bankMoney,并查詢此表中userID= Zhangsan的所有存款的總金額。
Create proc insert_bank @param1 char(10),@param2 varchar(20),@param3 varchar(20),@param4 int,@param5 int outputwith encryption ---------加密asinsert into bankMoney (id,userID,sex,Money)Values(@param1,@param2,@param3, @param4)select @param5=sum(Money) from bankMoney where userID='Zhangsan'go在SQL Server查詢分析器中執行該存儲過程的方法是:declare @total_price intexec insert_bank '004','Zhangsan','男',100,@total_price outputprint '總余額為'+convert(varchar,@total_price)go
在這里再 主站蜘蛛池模板: 马关县| 嘉祥县| 克拉玛依市| 大英县| 嘉定区| 叶城县| 赤城县| 高淳县| 明光市| 内江市| 宣威市| 平顶山市| 武鸣县| 扎囊县| 涟水县| 桓台县| 太仓市| 手游| 门头沟区| 林口县| 宜君县| 梁河县| 乌兰察布市| 方正县| 铜鼓县| 武乡县| 梅州市| 石门县| 金塔县| 罗城| 泽库县| 安新县| 中江县| 海门市| 基隆市| 开化县| 汉源县| 禹州市| 江安县| 桓台县| 保德县|