海妖 发表于 2015-1-16 22:22:51

MSSQL网页编程之创立和办理视图

对于update操作,event中依次记录旧行,新行的值。创立|视3.10.1创立视图
SQLSERVER供应了利用SQLSERVEREnterpriseManager和Transac-SQL命令两种办法来创立视图。在创立或利用视图,时应当注重到以下情形:
•只能在以后数据库中创立视图,在视图中最多只能援用1024列;
•假如视图援用的表被删除,则当利用该视图时将前往一条毛病信息,假如创立具有不异的表的布局新表来替换已删除的表视图则可使用,不然必需从头创立视图;
•假如视图中某一列是函数、数学表达式、常量或来自多个表的列名不异,则必需为列界说名字;
•不克不及在视图上创立索引;不克不及在划定规矩、缺省、触发器的界说中援用视图;
•当经由过程视图查询数据时,SQLSERVER不但要反省视图援用的表是不是存在,是不是无效,并且还要考证对数据的修正是不是违背了数据的完全性束缚。假如失利将前往毛病信息,若准确,则把对视图的查询转换成对援用表的查询。

1、利用SQLSERVEREnterpriseManager来创立视图
在SQLSERVER中利用SQLSERVEREnterpriseManager来创立视图的步骤为:
(1)启动SQLSERVEREnterpriseManager,登录到指定的服务器;
(2)翻开要创立视图的数据库文件夹,选中view图标,此时在左面的窗格中显现以后数据库的一切视图,右击图标,在弹出菜单当选择NewView选项,翻开NewView对话框。如3-1。在NewView对话框中共有四个区:表区、列区SQLscript区、数据了局区(此时对话框中的四个区都是空缺的);

(3)在创立视图时,起首点击按钮,翻开增加表对话框,如3-2所示;

(4)在列区当选择将包含在视图的数据列,此时响应的SQLSERVER剧本便显现在SQLscript区;
(5)单点按钮,在数据了局区将显现包括在视图中的数据行;
(6)单击按钮,在弹出对话框中输出视图名,单击"保留"完成视图的创立。

2、Transact-SQL命令创立视图
利用Transact-SQL命令CREATEVIEW创立视图的语法格局为:

各参数的寄义申明以下:
•view_name
暗示视图称号。
•select_statement
组成视图文本的主体,使用SELECT命令从表中或视图当选择列组成新视图的列。
提醒:可是在SELECT语句中,不克不及利用ORDERBY、COMPUTE、COMPUTEBY语句,不克不及利用INTO关头字,不克不及利用一时表。
•WITHCHECKOPTION
包管在对视图实行数据修正后,经由过程视图可以仍看到这些数据。好比创立视图时界说了前提语句,很分明视图了局会合只包含满意前提的数据行。假如对某一行数据举行修正,招致该行纪录不满意这一前提,但因为在创立视图时利用了WITHCHECHOPTION选项,以是查询视图时,了局会合仍包含该笔记录,同时修正有效。
•ENCRYPTION
暗示对视图文本举行加密,如许当检察syscomments表时,所见的txt字段值只是一些乱码。
•SCHEMABINDING
暗示在select_statement语句中假如包括表、视图或援用用户自界说函数,则表名、视图名或函数名前必需有一切者前缀。
•VIEW_METADATA
暗示假如某一查询中援用该视图且请求前往扫瞄形式的元数据时,那末SQLServer将向DBLIB和OLEDBAPIS前往视图的元数据信息
例13-13:利用WITHENCRYPTIONWITHCHECKOPTION选项,而且包括函数列。

因为利用了WITHCHECKOPTION,以是当对视图举行修正时,将前往毛病信息。好比实行以下语句:

前往毛病信息为:


13.10.2办理视图
1、检察、修正视图
在SQLSERVER中,经由过程SQLSERVEREnterpriseManager检察和修正视图次要实行以下步骤:
(1)启动SQLSERVEREnterpriseManager,登录到指定的服务器;
(2)翻开要创立视图的数据库文件夹,选中view图标,此时在左面的窗格中显现以后数据库的一切视图;
(3)右击要检察的视图,在弹出菜单当选择Properties选项,翻开ViewProperties对话框,如3-3所示;

(4)在该对话框内可扫瞄到该视图的注释,也能够对该视图举行修正,然后单击CheckSyntax按钮来对语句正当性举行反省,若要对视图的会见权限举行设置,请单击Permissions按钮。
2利用存储历程反省视图


体系历程sp_help用来前往有关数据库工具的具体信息,假如不针对某一特定工具,则前往数据库中一切工具信息其语法以下:

sp_help数据库工具称号
体系历程sp_helptext检索出视图、触发器、存储历程的文本。其语法为:
sp_helptext视图(触发器、存储历程)


3删除视图
删除视图与删除表一样都利用DROP命令。其语法为:
DROPVIEW视图称号
在需要把许多新记录插入某个数据表的场合,DELAY_KEY_WRITE选项的作用将非常明显。另外,索引还会在硬盘上占用相当大的空间。因此应该只为最经常查询和最经常排序的数据列建立索引。注意,如果某个数据列包含许多重复的内容,为它建立索引就没有太大的实际效果。

因胸联盟 发表于 2015-1-19 09:50:15

个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。

若相依 发表于 2015-1-25 15:33:49

但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)

山那边是海 发表于 2015-2-2 22:39:27

数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。

小女巫 发表于 2015-2-8 19:03:55

having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。

灵魂腐蚀 发表于 2015-2-25 22:50:11

对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。

分手快乐 发表于 2015-3-8 10:02:36

比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。

仓酷云 发表于 2015-3-15 21:52:20

很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。

海妖 发表于 2015-3-22 05:11:20

如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
页: [1]
查看完整版本: MSSQL网页编程之创立和办理视图