仓酷云

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

[学习教程] MSSQL网页编程之SQL Server 7.0 进门(五)

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

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

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

x
因此,我们的第一个“米”,就是二进制日志binlog必须是rowbased的。在rowbase下,二进制日志binlog同时记录了更新前后的整行记录。server利用SQLServer开辟使用程序
编写存储历程与触发器
存储历程和触发器是由用户创立的、驻留在服务器的一组TransactSQL查询语句。触发器是体系在特定前提下实行的。存储历程可以改良使用程序的功能。当客户程序必要会见数据时,一样平常要经由5个步骤才干会见到数据:
1)查询语句被发送到服务器。
2)服务器编译SQL代码。
3)优化发生查询的实行企图。
4)数据引擎实行查询。
5)了局发还客户程序。
存储历程是在创立时编译的,当存储历程第一次实行时,SQLServer发生查询实行企图并将其存储出去,以利于未来利用。当经由过程存储历程收回一个哀求时,上述的第2和第3步就没有了,这能年夜年夜改良体系的功能。即便在第1步上也能进步功能。由于此时发送到服务器的语句只是一条存储历程的EXECUTE语句,而不是复杂的、庞大的查询。这类特征能下降收集的流量。
除功能方面的改良外,存储历程还供应了便利地会合保护使用程序的功效。假如将查询嵌进到使用程序中。而又必要对查询举行改动,则使用程序必要从头编译,偏重新公布到一切的客户端。而在存储过程当中,修正对用户而言是通明的,它只必要在服务器上从头编译存储历程。
存储历程还能供应平安机制,只管用户大概无权实行存储过程当中的命令,但它却大概有权实行存储历程自己。偶然候,体系办理员不会给用户以数据修正(UPDATE、INSERT和DELETE)的权利。创立的存储历程却能举行这些操纵。固然用户必要具有实行该存储历程的权利。

创建存储历程
存储历程能够到达以下目标:
・带参数。
・前往形态值。
・挪用别的存储历程。
・在远程服务器上实行。
存储历程在“sysobjects”体系表中有一个表项,其范例为“P”。存储历程的文本存储在“syscomments”体系表中。创立存储历程必要利用TransactSQL命令CREATEPROCEDURE。
比方:
USEpubs
GO

CREATEPROCEDUREap_GetAuthorsForPublisher
AS
SELECTa.au_lname,a.au_fname
FROMauthorsa,titleauthorta,titlest,publishersp
WHEREa.au_id=ta.Au_id
ANDta.Title_id=t.title_id
ANDt.pub_id=p.pub_id
ANDp.pub_name=’NewMoonBooks’
GO

CREATEPROCEDURE语句的语法以下:
CREATEPROC[DURE]procedure_name[;number]
[@parameter_name][OUTPUT][,_n]]
[WITH{RECOMPILE|ENCRYPTION}]
[FORREPLICATION]
AS
Number是用来对不异名字的历程举行分组的整数。分组是将一切的历程经由过程dropprocedure语句组合到一个分组中。
@parameter_name指定参数的称号。
RECOMPILE暗示每次实行历程时都要举行编译。
ENCRYPTION暗示历程的文本在“syscomments”表中要加密。
FORREPLICATION暗示历程不克不及在提交服务器上实行。

将参数传送给存储历程
存储历程可以承受参数。
注重:历程的参数也能够是用户界说的数据范例。

给参数一个缺省值
用户还能够为存储过程当中的参数界说缺省值。当在实行时没有供应所需的参数时,体系就利用缺省值作为参数。假如既没有界说缺省值,又没有在实行时供应参数,则SQLServer就会前往一个毛病。在存储过程当中界说缺省值,并利用一些逻辑检测是不是指定了参数从而接纳响应的举动,这是一种很好的习气。
比方:
USEpubs
GO

CREATEPROCEDUREap_GetAuthorsForPublisher
@PublisherNamevarchar(40)=‘NewMoonBooks’
AS
SELECTa.au_lname,a.au_fname
FROMauthorsa,titleauthorta,titlest,publishersp
WHEREa.au_id=ta.Au_id
ANDta.Title_id=t.title_id
ANDt.pub_id=p.pub_id
ANDp.pub_name=@PublisherName
GO
由MySQL用来存储数据的文件格式以已经被广泛地测试过,但是总是有外部情况可以导致数据库表被破坏:
沙发
发表于 2015-1-19 11:33:50 | 只看该作者
多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。
简单生活 该用户已被删除
板凳
发表于 2015-1-25 11:55:14 | 只看该作者
但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。
爱飞 该用户已被删除
地板
发表于 2015-2-2 22:01:38 | 只看该作者
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
若天明 该用户已被删除
5#
 楼主| 发表于 2015-2-8 09:08:48 | 只看该作者
发几份SQL课件,以飨阅者
深爱那片海 该用户已被删除
6#
发表于 2015-2-25 08:20:32 | 只看该作者
分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。
蒙在股里 该用户已被删除
7#
发表于 2015-3-7 18:10:13 | 只看该作者
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
兰色精灵 该用户已被删除
8#
发表于 2015-3-15 11:03:35 | 只看该作者
对于微软系列的东西除了一遍遍尝试还真没有太好的办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-17 23:22

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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