不消企业打点器的环境下得知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,不知何解?不外修改后与以上功效符合。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |