设为首页 收藏本站
查看: 3032|回复: 6

[经验分享] 微软认证考试70-461 Modify Data 数据修改 --24%比重--(1)

[复制链接]

尚未签到

发表于 2013-3-8 08:57:26 | 显示全部楼层 |阅读模式

附注:微软认证考试70-461范围

  • Create Database Objects创建数据库对象 (24%)
  • Work with Data数据处理 (27%)
  • Modify Data数据修改 (24%)
  • Troubleshoot & Optimize故障排解及SQL优化 (25%)
本文是第三节Modify Data数据修改

第一部分:Create and alter stored procedures (simple statements).May include but not limited to: write a stored procedure to meet a given set of requirements; branching logic; create stored procedures and other programmatic objects; techniques for developing stored procedures; different types of storeproc result; create stored procedure for data access layer; program stored procedures, triggers, functions with T-SQL. 创建修改存储过程(简易语句)。可能包含但不仅限于:能够写出符合既定需求的存储过程;批处理逻辑;创建存储过程及其它可编程对象;了解各种存储过程开发相关技术;了解存储过程不同的返回结果类型;为某数据访问层创建存储过程;用T-SQL编写存储过程,触发器和函数。

创建存储过程没有参数的存储过程:


  • CREATE PROCEDURE 存储过程名称  
  • AS  
  • SELECT 语句  
  • GO  


执行方法:EXECUTE 存储过程名称或者EXEC 存储过程名称以下示例都将使用EXEC。        带参数的存储过程:


  • CREATE PROCEDURE my1  
  •    @lastname varchar(40),   
  •    @firstname varchar(20)   
  • AS   
  • SELECT * FROM member  
  • WHERE  firstname = @firstname  
  •       AND lastname = @lastname  
  • GO  


执行方法:
不指名参数将按照声明的参数顺序传入。
EXEC my1 'lastname','firstname'
指名参数:
EXECUTE my1 @lastname = 'last', @firstname = 'first'
或者
EXECUTE my1 @firstname = 'first', @lastname = 'last'

如果在批处理块的第一行,可以直接使用存储过程名称
my1 'lastname','firstname'

或者
my1 @lastname = 'last', @firstname = 'first'

或者
my1 @firstname = 'first', @lastname = 'last'

        创建存储过程时设置参数默认值


  • CREATE PROCEDURE my1  
  •    @lastname varchar(40)='Li',   
  •    @firstname varchar(20)='Hui'   
  • AS   
  • SELECT * FROM member  
  • WHERE  firstname = @firstname  
  •       AND lastname = @lastname  
  • GO  

执行 EXEC my1相当于EXEC my1 @lastname='Li',@firstname='Hui'
        创建带OUTPUT参数的存储过程



  • CREATE PROCEDURE my1  
  •    @lastname varchar(40),   
  •    @firstname varchar(20),  
  •    @testoutput varchar(100) OUTPUT  
  • AS   
  • SELECT @testoutput=email FROM member  
  • WHERE  firstname = @firstname  
  •       AND lastname = @lastname and id=1  
  •   
  • GO  

执行
declare @test varchar(100)
exec my1 'Li','Hui',@test OUTPUT
select @test
        使用表值参数创建一个表值类型:
CREATE TYPE myTableType AS TABLE
( name VARCHAR(50)
, id INT );
GO

创建带表值参数的存储过程:
create PROCEDURE my1
   @testtabletype myTableType readonly
AS
SELECT * FROM @testtabletype
GO
        使用OUTPUT游标参数



  • ALTER PROCEDURE my1  
  •    @testcursor cursor VARYING OUTPUT  
  • AS   
  • SET @testcursor = CURSOR  
  • FORWARD_ONLY STATIC FOR  
  • SELECT *  
  • FROM member  
  •   
  • OPEN @testcursor  
  • GO  




  •   




  • 注意:VARYING指定作为输出参数支持的结果集。该参数由过程动态构造,其内容可能发生改变。仅适用于 cursor 参数。  




  •   

使用:



  • DECLARE @MyCursor CURSOR  
  • EXEC my1 @testcursor = @MyCursor OUTPUT  
  • WHILE (@@FETCH_STATUS = 0)  
  • BEGIN  
  •    FETCH NEXT FROM @MyCursor  
  • END  
  • CLOSE @MyCursor  
  • DEALLOCATE @MyCursor  
  • GO  

        使用 WITH RECOMPILE 选项



  • CREATE PROCEDURE my1  
  •    @lastname varchar(40),   
  •    @firstname varchar(20)   
  • WITH RECOMPILE  
  • AS   
  • SELECT * FROM member  
  • WHERE  firstname = @firstname  
  •       AND lastname = @lastname  
  • GO  


WITH RECOMPILE选项将不会把执行计划存入缓存中。

使用WITH ENCRYPTION选项此选面会对存储过程定义进行加密。当执行exec sp_helptext my1时会提示“对象my1是加密的”,从而不能够查看my1的定义。
执行语句:



  • SELECT c.id, c.text   
  • FROM syscomments c INNER JOIN sysobjects o  
  •    ON c.id = o.id  
  • WHERE o.name = 'my1'  

结果:
id                text
224719853        NULL



修改存储过程


  • ALTER PROCEDURE sp_my1  
  •    @lastname varchar(40),   
  •    @firstname varchar(20)   
  • AS   
  • SELECT * FROM member  
  • WHERE  firstname = @firstname  
  •       AND lastname = @lastname  
  • GO  


删除存储过程
DROP PROCEDURE 存储过程名称


存储过程类型
  • 用户定义。用户定义的过程可在用户定义的数据库中创建,或者在除了 Resource 数据库之外的所有系统数据库中创建。
  • 临时。存储于 tempdb 中。本地临时过程的名称以单个数字符号 (#) 开头;它们仅对当前的用户连接是可见的;当用户关闭连接时被删除。全局临时过程的名称以两个数字符号 (##) 开头,创建后对任何用户都是可见的,并且在使用该过程的最后一个会话结束时被删除。
  • 系统。物理上存储在内部隐藏的 Resource 数据库中,但逻辑上出现在每个系统定义数据库和用户定义数据库的 sys 架构中。系统存储过程以sp_开头。



使用 EXECUTE AS 子句,存储过程可用于创建自定义权限集以下示例使用 EXECUTE AS 为数据库操作创建自定义权限。某些操作(如 TRUNCATE TABLE)没有可授予的权限。通过将 TRUNCATE TABLE 语句合并到存储过程中并指定该过程作为一个有权修改表的用户执行,您可以将截断表的权限扩展至授予其对过程的 EXECUTE 权限的用户。

CREATE PROCEDURE dbo.TruncateMyTableWITH EXECUTE AS SELFAS TRUNCATE TABLE MyDB..MyTable;




附注:存储过程中可以使用批处理控件语句,如IF...ELSE...,TRY...CATCH,事务等。



参考:http://msdn.microsoft.com/zh-cn/library/aa258259(v=sql.80).aspx
http://msdn.microsoft.com/zh-cn/library/ms187926(v=sql.110).aspx



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-3645-1-1.html 上篇帖子: 微软认证考试70-461 Work with Data 数据处理 --27%比重--(5.5) 下篇帖子: 微软认证考试70-461 Modify Data 数据修改 --24%比重--(2) 微软认证 考试

尚未签到

发表于 2013-3-14 03:48:26 | 显示全部楼层
不知该说些什么。。。。。。就是谢谢

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-16 03:43:10 | 显示全部楼层
人生不能像做菜、把所有的料都准备好才下锅!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-16 17:06:30 | 显示全部楼层
听君一席话,省我十本书!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-17 08:25:24 | 显示全部楼层
走过了年少,脚起了水泡

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-17 20:57:30 | 显示全部楼层
如果跟导师讲不清楚,那么就把他搞胡涂吧!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

尚未签到

发表于 2013-5-18 10:15:41 | 显示全部楼层
此地禁止大小便,违者没收工具。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表