前言
我们平时写一般的SQL语句的时候,可能不会用到系统表,不过在一些特殊的情况下就会用到了,比如说在系统运用的时候,我们根据日期动态创建的数据表,如果要从里面获取数据的时候最好需要加上判断这个表是否存在,如果存在我们就从表里面取数据,如果不存在就跳出。
我们先介绍一下各个系统表的作用,后面再取几个例子来说明用法。
SQL系统表
代码演示
1.判断数据表存在
我们要从数据库里查询付款流水的信息,付款流水表默认的是txsPayFlow表,后面的tXsPayFlow$201805是代表2018年5月的付款流水,这个表是每个月自动创建的,所以如果我们要查2018年5月的销售时就要从代年月的分割表里查询。
正常来说我们查一下18年5月的流水直接就写
因为我们的软件里没有做6月的月结,所以6月的表没创建,如果我们这里要查6月的数据,用上面的方法会直接报错了
这个时候我们的系统表就起到作用了,上面写到sysobjects可以看到数据库的对象,所以我们首先判断这个表是否在系统里存在,如果存在取数据,不存在输出无此表信息。
这样代码就可以正常运行了。
2.给数据表里增加字段
一般我们程序升级的时候,数据库有可能也会增加字段,为了多次执行不报错,我们在添加字段的时候就需要判断表里面是否有这个字段。
判断我们要增加字段的表里是否有这个字段用到了sysobjects,syscolumns这两个表,通过两个表里的ID关联,来判断是否有我们要增加的列
例:我们要在balance表里面增加一个sflag的列。
通过关联查询我们可以看到系统表里的列
这样我们写增加一个sflag的列的代码
当执行完第一次时,下面提示的命令已成功完成,我们从数据库里已经看到了列也增加了
然后我们再执行一次
下面的提示里面就告诉我们列已经存在了。