6.1常用系统存储过程
sp_attact_db 附加数据库
sp_detach_db 分离数据库
sp_rename给对象改名
sp_help显示数据库相关数据
sp_changedbowner改变数据库所有者
sp_password改密码
6.2
exec sp_detach_db'newlts'/*分离数据库*/
6.3
exec sp_attach_db@dbname='newlts',@filename1='D:\Program Files\Microsoft SQLServer\MSSQL12.MSSQLSERVER\MSSQL\DATA\newlts.mdf'/*附加数据库*/
6.4
exec sp_renamedbnewlts,newltsA/*改变数据库名称*/
exec sp_rename'网站职员表','新网站职员表'/*改变表名称*/
6.6
随时修改存储过程;
控制对用户的访问权限;
提高sql执行效率;
减轻网络负担(本地发命令到服务器执行存储过程);
6.7
/*创建存储过程*/
create proc newProc
as
begin
print 'hello,world'
end
/*调用存储过程*/
execnewProc
6.9对存储过程使用普通参数
/*创建存储过程*/
create proc newproc2
/*调用时要传递进来的两个参数*/
@testString1varchar(60),
@testString2varchar(60)
as
begin
print '第一个参数为:'+@testString1
print '第二个参数为:'+@testString2
end
/*调用存储过程*/
execnewproc2'大家好','我是张奎勋'
输出:
第一个参数为:大家好
第二个参数为:我是张奎勋
6.10对存储过程使用输出参数
/*创建存储过程,定义普通参数A和普通参数B,并定义输出参数*/
create proc newProc3
@testVarAint,
@testVarBint,
@testSumint Output
as
begin
set @testSum=@testVarA+@testVarB
end
6.11
/*调用上面已创建的存储过程:*/
declare@testA int
set@testA=60
print@testA
executenewProc3600,300,@testA Output
print@testA
输出:
60
900
6.12
/*创建存储过程,查询数据*/
create proc newProcA
@testNameAvarchar(30)
as
begin
select * from 第二网站职员表 where 姓名=@testNameA
end
/*执行上面的存储过程*/
executenewProcA'网站职员表之小孙'
6.14修改存储过程
选中存储过程表,右键,修改
ALTER proc [dbo].[newProcA]
@testMoneymoney output
as
begin
select@testMoney=Max(工资) from 第二网站职员表
end
/*调用存储过程,申明变量,执行存储过程,输出变量*/
declare@MaxMoney money
executenewProcA@MaxMoney output
select@MaxMoney as 工资最高的员工工资
6.16
/*重命名存储过程*/
sp_rename newProc,reNameProc
/*删除存储过程*/
drop Proc reNewProc
6.17创建存储过程的实例
create proc ProcSimple1
@testVarint,
@testVar1int
as
begin
if@testVar>@testVar1
print cast(@testVar as varchar(10))+'大于'+cast(@testVar1 as varchar(10))
else if @testVar<@testVar1
print cast(@testVar as varchar(10))+'小于'+cast(@testVar1 as varchar(10))
else
print cast(@testVar as varchar(10))+'等于'+cast(@testVar1 as varchar(10))
end
/*调用存储过程*/
execProcSimple1100,300
6.19创建用户名和密码的存储过程实例
create proc testUser
@testPassWordvarchar(60),
@testUservarchar(60)
as
begin
declare@testMsg varchar(100)
if@testUser='user1'
begin
if@testPassWord='123'
set @testMsg='欢迎user1进入我的世界'
else
set @testMsg='对不起,密码错误'
end
else if @testUser='user2'
begin
if@testPassWord='abc'
set @testMsg='欢迎user2进入我的世界'
else
set @testMsg='对不起,密码不正确'
end
else
set @testMsg='请输入正确的用户名和密码!'
print@testMsg
end
/*调用上面的执行过程*/
exectestUser123,'user1'