sql server:关于系统表[syscolumns]和[systypes]xtype和type
上网看了一些资料,结合我自己的猜想结论有4点。前三点参照其它的人说法,具体内容,可以在附录里面找到。 1、一种说法是 type是6.0就有的,xtype是7.0才有的。 2、同时保留这两个是为了兼容性考虑。 3、xtype是物理存储类型, type是物理存储数据类型 (参见附录第1个链接) 4、结合上面几点上我以前编程和研究暗黑数据库的经验,也许xtype和type之间还有一种递归或者继承的关系在里面。 在附录1的页面上有人做了一个实验: select name,xtype,type,status from systypes where type=39 结果是得到了'nvarchar'等4个类型 我又做了一个实验: select name,xtype,type,status from systypes ORDER BY [type] 结果中我看到这样的内容: ntext 99 35 0 这表明type和xtype之间肯定有关某种关联。看起来不太像暗黑的递归,倒类似面向对象里面的继承。 可是在表systypes里面,可以看到不管是xtype还是type都不是连续的数字。那么缺少的那些到哪里去了呢?在这个地方我有一个待验证的想法:是不是还有另外一个表,存储了type=39中的更多数据呢? 附录:几个讨论这个问题的文章 1、systypes表的xtype是物理存储类型,type呢,就是物理存储数据类型 http://www.tiantiansoft.com/bbs/dispbbs.asp?BoardID=3&id=110656 2、Type是在6.0就有的,XType在7.0才出现: http://topic.csdn.net/t/20011129/01/393718.html 3、说到了兼容的问题,还提到另外一个人“ONLINE BOOK”的解释,可惜我没找到。 |