仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1139|回复: 9
打印 上一主题 下一主题

[学习教程] MSSQL网页设计SQL Server 7.0 进门(六)---创建存储...

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:37:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
由MySQL用来存储数据的文件格式以已经被广泛地测试过,但是总是有外部情况可以导致数据库表被破坏:server|存储历程创建存储历程体
   存储历程逻辑驻留在存储历程体中。一个存储历程体中能够包括恣意条TransactSQL语句。上面的TransactSQL语句不克不及在任何存储历程体中呈现:
   ·CREATEDEFAULT
   ·CREATETRIGGER
   ·CREATEPROCEDURE
   ·CREATEVIEW
   ·CREATERULE
1、 部分变量
部分变量坚持存储过程当中间值。当一个值在存储过程当中必要屡次,大概某个查询的了局必要在随后的查询中利用时,必要利用部分变量。在这些情况下,值被存储在部分变量中,并可用于未来的利用。当地变量的称号以“@”标记开首。变量的称号能够包括字符和数值。部分变量在利用前必要举行范例声明。对部分变量举行赋值必要利用SELECT语句。SELECT能够从一个表中检索出值并将其赋给某个变量,也能够给变量赋一个常量值。一个复杂的SELECT语句能够给多个部分变量赋值。
比方:
DECLARE@var1integer,@var2varchar(20)
SELECT@var1=32,
     @var2=‘MyAge’
假如从SELECT查询中没有前往任何数据,而SELECT又要将数据的值付与部分变量,则该部分变量的值将不会产生改动。
2、 前提文句
存储过程当中供应的前提语句包含:
·IF……ELSE语句。
·WHILE语句。
1) IF……ELSE语句。在该语句中包括三个部分:布尔运算表达式,IF语句块和ELSE语句块。语法以下:
IF(boolen_expr)
 {statements}
ELSE
 {statements}
在IF或ELSE语句块中能够有多条语句,这类情况下,必要语句BEGIN和END来标记语句块。
2) WHILE语句。WHILE语句用于处置直到某个前提为TRUE前反复实行的语句。语法以下:
WHILE(boolen_expr)
 BEGIN
 statement(s)
BREAK
Statement(s)
CONTINUE
       END
      BEGIN和END语句标记轮回体。BREAK语句停止轮回的实行(即走到END语句以后)。CONTINUE语句将把持处置历程回到轮回的入手下手处(即BEGIN语句的右侧)。
      注重:假如有两个或多个WHILE轮回被嵌套,则外部的BREAK加入的是次外层的轮回。外部轮回停止以后的一切语句在外部轮回实行以后才干持续实行。

3、 GOTO语句
在存储历程的实行中,语句是按次实行的。GOTO语句则是用来冲破这类语句实行的按次,它当即跳到某条语句上实行,而这条语句常常不紧跟在前一语句以后。GOTO语句与一个标记(Label)一同利用,该标记用来标识一条语句。
比方:
USEpubs
GO

DECLARE@numint
SELECT
IF@num=0
   GOTOErr
ELSE
   BEGIN
   PRINT‘authorsfound’
   SELECT*FROMauthors
   GOTOLast
   END
Err:PRINT‘noauthorsfound’
Last:PRINT‘Finishexecution’
GO
4、 RETURN语句
RETURN语句用于无前提的加入存储历程。RETURN以后的任何语句都不再实行。RETURN语句能够给挪用语句前往一个值,但不克不及前往NULL值。SQLServer常常为存储历程前往一个形态值。假如乐成地实行,则前往一个0,假如呈现了毛病,则前往一个为正数的毛病码。
存储历程前往的毛病码

说    明

说    明

0
历程实行乐成
-8
产生了非致命的外部成绩

-1
遗漏了工具
-9
到达了体系极限

-2
产生了数据范例毛病
-10
产生了致命的外部纷歧致毛病

-3
该处置被选择成了逝世锁的就义者
-11
产生了致命的外部纷歧致毛病

-4
产生了权限毛病
-12
表或索引被损坏

-5
产生了语法毛病
-13
数据库被损坏

-6
产生了混同的用户毛病
-14
产生了硬件毛病

-7
资本毛病,如空间不敷等


5、 利用游标(CURSOR)在必要一行一行处置时,游标非常有效。游标能够翻开一个了局汇合(依照指定的尺度选择的行),并供应在了局会合一行一行处置的功效。基于游标的范例,能够对其举行回滚大概行进。在利用游标时必要5个步骤:这类操作的执行过程是,1)按照新的表定义建立一个临时表tmpa,2)将原表数据拷贝到临时表,3)将原始表改名tmpb,4)将tmpa改名为原表名,5)将tmpb删除。
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-19 19:04:48 | 只看该作者
sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西
金色的骷髅 该用户已被删除
板凳
发表于 2015-1-19 19:04:48 来自手机 | 只看该作者
多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。
飘灵儿 该用户已被删除
地板
发表于 2015-1-28 09:42:04 | 只看该作者
如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.
admin 该用户已被删除
5#
发表于 2015-2-5 18:16:50 | 只看该作者
比如日志传送、比如集群。。。
变相怪杰 该用户已被删除
6#
发表于 2015-2-13 05:48:11 | 只看该作者
比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
海妖 该用户已被删除
7#
发表于 2015-3-3 15:29:24 | 只看该作者
理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识
灵魂腐蚀 该用户已被删除
8#
发表于 2015-3-11 11:46:23 | 只看该作者
对于微软系列的东西除了一遍遍尝试还真没有太好的办法
再现理想 该用户已被删除
9#
发表于 2015-3-18 10:02:50 | 只看该作者
我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!
飘飘悠悠 该用户已被删除
10#
发表于 2015-3-25 16:42:25 | 只看该作者
SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-5 19:05

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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