仓酷云

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

[学习教程] MSSQL编程:查询库中的CHECK束缚信息的两个视图(S...

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

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

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

x
一个语句分成两个event(实际上不止,其他可以忽略),一个table_mapevent和一个Rows_log_event。Table_mapevent是一样的,主要看Rows_log_event。server|视图
以下两个视图均基于体系表sysobjects、syscomments和体系视图sysconstraints,查询了局中包含表ID、表名、列ID、列名、CHECK束缚ID、CHECK束缚名、CHECK束缚status值和CHECK束缚的内容,TCCView为Table-Column-CheckView,了局中均为列级CHECK束缚,TCView为Table-CheckView,了局中均为表级CHECK束缚。

关于字段status的值的感化,拜见不必企业办理器的情形下得知CHECK束缚的属性设置一文。

上面是两个视图的代码,可用于SQLSERVER2000数据库中的恣意数据库中。

TCCView:
SELECTTOP100PERCENTa.idAStableid,a.tablename,a.colid,a.columnname,
a.datatype,a.length,b.constidAScheckid,b.checkname,b.status,b.content
FROM(SELECTsysobjects.nameAStablename,sysobjects.id,
syscolumns.nameAScolumnname,syscolumns.colid,
systypes.nameASdatatype,syscolumns.lengthASlength
FROMsysobjects,syscolumns,systypes
WHEREsysobjects.xtype=uANDsysobjects.id=syscolumns.idAND
syscolumns.xtype=systypes.xtypeAND
systypes.xtype=systypes.xusertypeANDsysobjects.status>0)
aLEFTOUTERJOIN
(SELECTsysobjects.namecheckname,sysobjects.status,sysconstraints.constid,
sysconstraints.id,sysconstraints.colid,syscomments.textAScontent
FROMsysobjects,sysconstraints,syscomments
WHERExtype=cANDsysobjects.id=sysconstraints.constidAND
sysconstraints.constid=syscomments.id)bONa.id=b.idAND
a.colid=b.colid
ORDERBYa.tablename,a.columnname,b.checkname

TCView:
SELECTa.idAStableid,a.tablename,b.constidAScheckid,b.checkname,b.status,
b.content
FROM(SELECTsysobjects.id,sysobjects.nameAStablename
FROMsysobjects
WHEREsysobjects.xtype=uANDsysobjects.status>0)aLEFTOUTERJOIN
(SELECTsysobjects.namecheckname,sysobjects.status,sysconstraints.constid,
sysconstraints.id,sysconstraints.colid,syscomments.textAScontent
FROMsysobjects,sysconstraints,syscomments
WHERExtype=cANDsysobjects.id=sysconstraints.constidAND
sysconstraints.constid=syscomments.idANDsysconstraints.colid=0)bON
a.id=b.id
支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
谁可相欹 该用户已被删除
沙发
发表于 2015-1-17 12:15:33 | 只看该作者
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-1-20 18:33:41 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
活着的死人 该用户已被删除
地板
发表于 2015-1-29 14:32:37 | 只看该作者
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-6 01:55:49 | 只看该作者
不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?
深爱那片海 该用户已被删除
6#
发表于 2015-2-14 21:35:00 | 只看该作者
相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐
山那边是海 该用户已被删除
7#
发表于 2015-3-4 10:43:59 | 只看该作者
如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.
因胸联盟 该用户已被删除
8#
发表于 2015-3-11 18:23:57 | 只看该作者
如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。
蒙在股里 该用户已被删除
9#
发表于 2015-3-19 07:22:34 | 只看该作者
需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 06:00

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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