加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

不消企业打点器的环境下得知CHECK束缚的属性配置

发布时间:2018-08-17 17:25:46 所属栏目:电商 来源:站长网
导读:我们知道,在SQL SERVER企业打点器中,在计划表状态下,当查察该表的CHECK束缚时,会看到CHECK束缚有建设中搜查现存数据、对复制逼迫束缚、对INSERT和UPDATE逼迫束缚三个复选框,那么假如不在企业打点器情形下,可能在应用措施中,我们怎样得知某个CHECK约

我们知道,在SQL SERVER企业打点器中,在“计划表”状态下,当查察该表的CHECK束缚时,会看到CHECK束缚有“建设中搜查现存数据”、“对复制逼迫束缚”、“对INSERT和UPDATE逼迫束缚”三个复选框,那么假如不在企业打点器情形下,可能在应用措施中,我们怎样得知某个CHECK束缚的这三个选项是否选中呢?

我查察了干系体系表的辅佐声名,但内里对许多几何字段的声名都为“保存”、“仅供内部行使”等,没有字段的浸染声名。但我发明当改变三个选项的选中状态时,sysobjects中响应CHECK束缚记录的status字段值产生改变,为了得知个中是否有纪律可循,我做了如下测试并得出一些结论,拿出来共享。

“建设中搜查现存数据”、“对复制逼迫束缚”、“对INSERT和UPDATE逼迫束缚”三项属性别离对应000的三位,0为不选,1为选中。

成立一个测试表,为其成立列级CHECK束缚和表级CHECK束缚,先令其为空表。
下面功效中,等号左边为三个属性的选中状态,右边为sysobjects表中束缚记录的status字段值:
对付列级束缚:
000=3330
001=3074
010=2306
011=2050
100=3330(生涯后仍未选中,不知为何)
101=3074
110=2306
111=2
发明除111外,别的首位为1均作为0对待。

对付表级束缚:
000=3328
001=3072
010=2304
011=2048
100=3328
101=3072
110=2304
111=0
可发明与列级束缚有同样的题目,同时,对付沟通的二进制值,表级束缚比列级束缚少2。

但值得留意的是,以上测试是在表中无数据的环境下,故也许引起三位二进制数的最高位有时义。下面测试表中稀有据的功效(在测试表中插入了切合各CHECK束缚的数据):

对付列级束缚:
000=3330
001=3074
010=2306
011=2050
100=3330
101=3074
110=2306
111=2

对付表级束缚:
000=3328
001=3072
010=2304
011=2048
100=3328
101=3072
110=2304
111=0

可见功效完全沟通。
揣摩缘故起因是“建设中搜查现存数据”一项只在CHECK束缚生涯刹时浸染,生涯后体系即将其打消,故若查察已有的CHECK束缚,该选项已有时义,故为不选中状态。

但在pubs库中,发明体系已有的一些CHECK束缚的status初始值为6,不知何解?不外修改后与以上功效符合。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读