詳解SQL存儲過程_Mssql數據庫教程
推薦:實例演示left join/right join/inner join表A記錄如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B記錄如下: bID bName 1 2006032401 2 2006032402 3 2006032403 4 2006032404 8 2006032408 實驗如下: 1. left join sql語句如下: SELECT * FROM A LEFT JOIN B ON A
前言
一直用ASP+ACCESS來編寫網頁和公司的內部應用系統(tǒng),內部應用系統(tǒng)也就是大家說的OA吧,這個我也不知道,公司又叫它ERP,反正不管什么,它是用來幫助公司處理日常工作的,簡化勞動的.從來沒用過存儲過程,所有的添加,刪除,修改都是在ASP里面寫程序執(zhí)行,代碼很多.數據量少的時候沒什么感覺,挺快的,可等到數據量大的時候,上W條記錄查詢,尤其是不分頁都顯示在一頁里的時候情況就出現了,速度很慢,要10幾秒才有反應,所以想到了要用SQL的存儲過程來簡化代碼和加快程序的執(zhí)行速度!
在學習了51JS里的一篇教程SQL SERVER數據庫開發(fā)之存儲過程應用又在QQ里大俠的指導下終于有點入門,下邊是我的學習筆記,有問題歡迎大家一起討論!~
1.ASP調用存儲過程
首先在SQL里建立一個數據庫叫it,怎么建我就不說了,這個簡單,一看就知道了。然后在庫里建個表,寫幾個數據記錄,如下:

點擊放大

打開查詢分析器:

在里邊寫下如下語句點擊綠色按鈕執(zhí)行它:

你到數據庫的存儲過程里面看,已經多了一個名為upGetUserName的存儲過程了表明已經成功的建立了存儲過程,如果沒有,試著刷新下。

下面用ASP來調用它:
CONN文件(連接數據庫)如下:
<%
set db=server.createobject("adodb.connection")
db.Open ("driver={SQL Server};server=192.168.18.254;uid=sa;pwd=;database=it;")
%>
192.168.18.254為SQL SERVER服務器的IP地址,uid pwd it 分別為連接數據庫的用戶和密碼及所要連的數據庫
新建一個index.asp文件,內容如下:
<!--#include file="conn.asp" -->
<%
set rs=server.createobject("adodb.recordset")
sql = "exec upGetUserName"
rs.open sql,db,3,2
response.write rs.recordcount&"<br>"
while not rs.eof
response.write rs("uname")&"<br>"
rs.movenext
wend
response.End
%>
在瀏覽器中執(zhí)行這個頁面如果顯示如下:

那么恭喜你,成功了!
上面是不帶參數的存儲過程調用,但我們在使用中一定會有參數的,下面就來介紹一個有參數的。
還是上邊的例子,我們把原來的存儲過程改成這樣:
CREATE PROC upGetUserName
@intUserId NVARCHAR(50),
@intUserpass NVARCHAR(50)
AS
BEGIN
SELECT uname FROM users WHERE uId=@intUserId and pass=@intUserpass
END
GO
可以把原來的存儲過程刪除,然后把這個寫在查詢分析器里來執(zhí)行,也可以直接在原來的存儲過程里改。
@intUserId NVARCHAR(50),
@intUserpass NVARCHAR(50)
是要傳送進來的參數,@是必須的,因為有兩個,所以之間用“,”來分隔
index文件改成如下:
<!--#include file="conn.asp" -->
<%
set rs=server.createobject("adodb.recordset")
sql = "exec upGetUserName 'snake','snake'"
rs.open sql,db,3,2
response.write rs.recordcount&"<br>"
while not rs.eof
response.write rs("uname")&"<br>"
rs.movenext
wend
response.End
%>
注意:sql = "exec upGetUserName 'snake','snake'"
兩個snake不是一個意思,一個是uid,一個是pass,存儲過程返回的是uid="snake"并且pass="snake"的記錄
數據庫里只有一條這樣的記錄,所以會顯示:

OK,你已經入門了!就這么簡單!
分享:解析配置SQL SERVER合并復制(一)概念介紹Rob Tiffany's 曾經在 MEDC 2007 Las Vegas 和 Tech Ed 2007 Orlando 演示了擁有800個訂閱的4層合并復制架構。之后他開始編寫一本叫《Windows Mobile Data Synchronization with SQL Server 2005 and SQL Server Compact 3.1》的書,將構建高性能、可伸縮性的
- sql 語句練習與答案
- 深入C++ string.find()函數的用法總結
- SQL Server中刪除重復數據的幾個方法
- sql刪除重復數據的詳細方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數據庫,提示 無法為該請求檢索數據 錯誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數的用法實例詳解
- 相關鏈接:
- 教程說明:
Mssql數據庫教程-詳解SQL存儲過程
。