sql server 联机丛书中的定义:
存储过程是保存起来的可以接受和返回用户提供的参数的 transact-sql 语句的集合。
可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),或在所有会话中临时使用(全局临时过程)。
也可以创建在 microsoft sql server 启动时自动运行的存储过程。
create proc 存储过程名称
[参数列表(多个以“,”分隔)]
as
sql 语句
create proc upgetusername
@intuserid int,
@ostrusername nvarchar(20) output -- 要输出的参数
as
begin
-- 将uname的值赋给 @ostrusername 变量,即要输出的参数
select @ostrusername=uname from uuser where [email protected]
end
dim adocomm
'// 创建一个对象,我们用来调用存储过程
set adocomm = createobject("adodb.command")
with adocomm
'// 设置连接,设 adoconn 为已经连接的 adodb.connection 对象
.activeconnection = adoconn
'// 类型为存储过程,adcmdstoredproc = 4
.commandtype = 4
'// 存储过程名称
.commandtext = "upgetusername"
'// 设置用户编号
.parameters.item("@intuserid").value = 1
'// 执行存储过程
.execute
'// 取得从存储过程返回的用户名称
response.write "用户名:" & .parameters.item("@ostrusername").value
end with
'// 释放对象
set adocomm = nothing
create proc upuserlogin
@strloginname nvarchar(20),
@strloginpwd nvarchar(20),
@blnreturn bit output
as
-- 定义一个临时用来保存密码的变量
declare @strpwd nvarchar(20)
begin
-- 从表中查询当前用户的密码,赋值给 @strpwd 变量,下面要对他进行比较
select @strpwd=uloginpwd from uuser where [email protected]
if @strloginpwd = @strpwd
begin
set @blnreturn = 1
-- 更新用户最后登录时间
update uuser set ulastlogin=getdate() where [email protected]
end
else
set @blnreturn = 0
end
dim adocomm
'// 创建一个对象,我们用来调用存储过程
set adocomm = createobject("adodb.command")
with adocomm
'// 设置连接,设 adoconn 为已经连接的 adodb.connection 对象
.activeconnection = adoconn
'// 类型为存储过程,adcmdstoredproc = 4
.commandtype = 4
'// 存储过程名称
.commandtext = "upuserlogin"
'// 设置登录名称
.parameters.item("@strloginname").value = "admin"
'// 设置登录密码
.parameters.item("@strloginpwd").value = "123456"
'// 执行存储过程
.execute
'// 判断是否登录成功
if .parameters.item("@blnreturn").value = 1 then
response.write "恭喜你,登录成功!"
else
response.write "不是吧,好像错了哦。。。"
end if
end with
'// 释放对象
set adocomm = nothing
create proc upgetuserinfos
@intusergroup int
as
begin
-- 从数据库中抽取符合条件的数据
select uname,ugroup,ulastlogin from uuser where [email protected]
-- 插入一列合计
union
select '合计人数:',count(ugroup),null from uuser where [email protected]
end
dim adocomm
dim adort
'// 创建一个对象,我们用来调用存储过程
set adocomm = createobject("adodb.command")
set adors = createobject("adodb.recordset")
with adocomm
'// 设置连接,设 adoconn 为已经连接的 adodb.connection 对象
.activeconnection = adoconn
'// 类型为存储过程,adcmdstoredproc = 4
.commandtype = 4
'// 存储过程名称
.commandtext = "upgetuserinfos"
'// 设置用户组
.parameters.item("@intusergroup").value = 1
'// 执行存储过程,和以上几个例子不同,这里使用recordset的open方法
adors.open adocomm
'// 显示第一个值
response.write adors.fields(0).value
end with
'// 释放对象
set adors = nothing
set adocomm = nothing