加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

存储过程

发布时间:2020-12-12 15:42:36 所属栏目:MsSql教程 来源:网络整理
导读:一、存储过程:经过编译的SQL语句 1、计算机语言: A、机器语言 B、汇编语言 C、高级语言(BASIC、forbase、forpro、ASP.PHP、JSP) 说明:将语言转变为机器语言称为编译 特点:A、效率高 B、有利于模块化编程 C、可以减少网络流量 2、存储过程的分类 A、系

一、存储过程:经过编译的SQL语句

1、计算机语言: A、机器语言 B、汇编语言 C、高级语言(BASIC、forbase、forpro、ASP.PHP、JSP) 说明:将语言转变为机器语言称为编译 特点:A、效率高 B、有利于模块化编程 C、可以减少网络流量 2、存储过程的分类 A、系统存储过程:为了方便管理工作,系统自带的存储过程以sp_开头 B、用户存储过程 3、常用的存储过程 A、显示数据库服务器中的数据库信息 sp_databases B、显示某一个数据库的详细信息 sp_helpDB C、显示dufei数据库的详细信息 sp_helpDB dufei D、显示当前数据库的文件信息 sp_helpfile E、文件组信息 sp_helpfilegroup F、显示当前数据库中的表对象(视图) sp_tables --@table_type="table" G、数据库改名 sp_renameDB H、数据库中对象改名 sp_rename 表 列 视图 触发器 ... I、显示表的字段信息 sp_columns 表名

二、特殊存储过程:扩展存储过程

1、xp_cmdshell 作用:可以执行系统的任何命令 xp_cmdshell 'dir' SQL Server 2005 默认 xp_cmdshell是关闭的 开启方法: 方法一:sp_configure 'show advanced options',1 reconfigure sp_configure 'xp_cmdshell',1 reconfigure 查看C盘:master..xp_cmdshell 'dir c:' 增加一个文件夹:master..xp_cmdshell 'md c:muma' 删除一个文件夹:xp_cmdshell 'RD c:muma' 关闭:sp_configure 'xp_cmdshell',0 reconfigure 删除 xp_cmdshell * sp_dropextendedproc 'xp_cmdshell' 恢复:sp_addextendedproc 'xp_cmdshell' 说明:xp_开头的扩展存储过程,一般是和.dll文件结合使用,.dll:动态链接文件 方法二:开始--程序--Microsoft SQL Server 2005--配置工具--SQL Server 2005外围应用配置器--功能的外围应用配置器--xp_cmdshell 2、新建用户:xp_cmdshell 'net user dufei dufei /add' xp_cmdshell 'net user dufei' 3、高级用户:xp_cmdshell 'net localgroup administrators dufei /add' 4、格式化:xp_cmdshell 'format' 5、共享:xp_cmdshell 'net share'

三、 用户自定义存储过程

1、语法:create procedure 存储过程名[参数] as SQL 语句 说明:存储过程--可编程性 实例:编写一个存储过程,实现显示四行星 create procedure xing as declare @i int,@j int,@s varchar(100) set @i=1 while @i<=4 begin set @j=1 set @s='' while @j<=2*@i-1 begin set @s=@s+'*' set @j=@j+1 end print space(50-@i)+@s @i=@i+1 end 调用:exec 存储过程名 exec xing 实例:编写一个存储过程,用于显示yuanGong表中技术部的员工 create proc proc01 --proc是简写 as select * from yuanGong where 部门='技术部' exec proc01 2、[参数] 两种:形式参数:形参,在创建的时候所给定的参数 实际参数:实参,在调用的时候所给定的参数 实例:存储过程,显示指定行的星 create procedure xing @h int --修改时create可改为alter as declare @i int,@s varchar(100) set @i=1 while @i<=@h begin set @j=1 set @s='' while @j<=2*@i-1 begin set @s=@s+'*' set @j=@j+1 end print space(50-@i)+@s set @i=@i+1 end exec xing 30 --数量对应@h 实例:编写一个存储过程,用于删除某个员工记录 create proc deluser @username varchar(10) as delete from yuanGong where 姓名=@username exec deluser '张三' --实参 实例:通过一个存储过程来向表中插入一条记录 create proc procinsert @spname varchar(10),@pri int,@num int as insert into sp values (@spname,@pri,@num) exec procinsert '包子',3.5,2 select * from sp exec procinsert '鸟巢',10,2

四、编写一个存储过程:自动关闭数据库服务器

1、给客户机发消息:30分钟后关机 create proc shut as exec xp_cmdshell 'net send 192.168.3.39 各位用户请注意三十分钟后,系统将关机维护,请保存数据!' 说明:什么时候带exec,什么时候不带exec print '当前服务器中' cmd --cd 回车--net pause mssqlserver (pause为暂停服务) 2、先暂停(不允许新用户登录了) exec xp_cmdshell 'net pause mssqlserver' 3、等待10分钟 waitfor delay '00:10:00' 4、再发消息:20分钟后关机 exec xp_cmdshell 'net send 192.168.3.39 各位用户请注意二十分钟后,系统将关机维护,请保存数据!' 5、等待20分钟 waitfor delay '00:20:00' 6、关机 exec xp_cmdshell 'net stop mssqlserver' exec shut 说明:发送信息: services.msc --messenger 启动 cmd -- net send * 各位用户请注意三十分钟后,系统将关机维护,请保存数据!(*代表所有用户,也可用固定用户如:192.168.2.42)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读