1. select * From master.dbo.sysdatabases where name='test_db'
如果不存在查询结果,则说明name所表示的数据库不存在
2. object_id('test_db')
如果无法获取对象ID(null),则说明此对象不存在;常用
if object_id('test_db') is null
或者
if (select object_id('test_db')) is null
3. db_id('test_db')
如果不能获取数据库ID,则说明name所表示的数据库不存在;实际上此种方法也是在sysdatabases中查找,并返回数据库的ID;常用
if db_id('test_db') is null
或者
if (select db_id('test_db')) is null
在执行数据库查询后,读取结果的时候没有判断结果集指针是否越界。比如只查出一条数据,结果你就读两次结果,读的时候指针是会向下走,读一条,就指到下一条。
结果集第一条数据的前边一条是BOF,B就是Begin的首字母,最后一条的后边是EOF。
结果集查回来,指针通常指向BOF,如果你写arr["字段名"]就会出错,应该先读一次,并且读的时候要判断是否读取成功,如果结果集为空,读的时候就会从BOF直接指向EOF,这样读取会失败。
判断思路如下:select COUNT(*) from tableName where conditions
if exists (select * from tableName where conditions) select '1' else select '0'
通过返回值去判断是否存在。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)