一、自定義函數:
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
在這里再 主站蜘蛛池模板: 江孜县| 清水河县| 无锡市| 锡林郭勒盟| 平顶山市| 雅安市| 抚松县| 雷州市| 台州市| 城步| 根河市| 贵溪市| 吴江市| 大荔县| 加查县| 徐闻县| 黔东| 南部县| 五河县| 阿克苏市| 临洮县| 云龙县| 桦甸市| 周至县| 抚顺县| 桐柏县| 民县| 通海县| 哈密市| 呼和浩特市| 徐闻县| 沅江市| 武夷山市| 郸城县| 延寿县| 柘城县| 河津市| 方山县| 漳州市| 肥东县| 页游|