博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在SQL中判断一个表是否存在
阅读量:5321 次
发布时间:2019-06-14

本文共 1586 字,大约阅读时间需要 5 分钟。

转自:http://blog.csdn.net/strugglesword/article/details/3372422  

在SQL中判断一个表是否存在

 

create table if not exists a(id varchar(10));

    

            <%sql="if exists (select * from sysobjects where id = 

            object_id(N'[dbo].[phone]') and OBJECTPROPERTY(id, N'IsUserTable') = 
            1) drop table [dbo].[phone]" 
            con.execute(sql) 
            %> 
            如果表phone存在则删除phone表 
            其中phone是表名,con是connection对像 
              两个假设: 
              1、已知数据库中所有的表默认的 Owner,如dbo(可以省略而取默认值) 
              2、已知当前用户有权限访问 systemobjects 系统表

              SQL 语句: 

              select * from sysobjects where id =  
                 object_id(N'[dbo].[table_name]') 
                 and OBJECTPROPERTY(id, N'IsUserTable') = 1  
              '注:table_name 为实际要检查的表名

              解释: 

              如果返回记录数为0则表明没有这个表,否则表示已经存在。 
               
              systemobjects 表中保存着数据库的所有表、视图和存贮过程等的信 
              息,检索这个系统表即可得到是否存在。此方法还适用于检查视图和存 
              贮过程,相应的标志要改为IsView(视图/查询)或者IsProcedure( 
              存贮过程),table_name 处为 view_name 或 procedure_name。 
              
              评价: 
              这种方法较检查错误代码确定表是否存在的方法相对较麻烦一些,但功 
              能更强大,不仅可以检查表还可以检查视图/查询、存贮过程等,用途比 
              较广泛。后者简便易行,不需要任何先觉条件,但应用范围比较有限。 
              个人认为,如果力求规范的编程,推荐使用第一种也就是搜索系统表的 
              方法判断对象(表、视图等)是否存在。 
             
                  ?如果是仅仅判断表名是否存在的,我觉得用下面的方法更简单(错误侦测法). On Error Resume Next ERR.CLEAR STRSQL="SELECT * FROM " & 你判断的表名 P_Cnn.Execute StrSql IF ERR.NUMBER=0 THEN '存在 ELSE '不存在. END IF

Referrence:Microsoft ADO Ext 2.x For DLL and Security '判断一个表(Table)是否在数据库中存在,若存在返回True;否则返回False。

 Public Function ExistTable(TName As String, YHcnn As ADODB.Connection) As Boolean Dim cat As New ADOX.Catalog Dim tbl As ADOX.Table Dim Ret As Boolean Ret = False Set cat.ActiveConnection = YHcnn For Each tbl In cat.Tables If tbl.Type = "TABLE" And tbl.Name = TName Then Ret = True Exit For End If Next tbl Set cat = Nothing ExistTable = Ret End Function

转载于:https://www.cnblogs.com/kiao295338444/articles/2642454.html

你可能感兴趣的文章
【转】系统无法进入睡眠模式解决办法
查看>>
省市县,循环组装,整合大数组
查看>>
python--闭包函数、装饰器
查看>>
Phpstorm中使用SFTP
查看>>
stm32中字节对齐问题(__align(n),__packed用法)
查看>>
like tp
查看>>
使用 github Pages 服务建立个人独立博客全过程
查看>>
posix多线程有感--线程高级编程(线程属性函数总结)(代码)
查看>>
spring-使用MyEcilpse创建demo
查看>>
DCDC(4.5V to 23V -3.3V)
查看>>
kettle导数到user_用于left join_20160928
查看>>
activity 保存数据
查看>>
typescript深copy和浅copy
查看>>
linux下的静态库与动态库详解
查看>>
hbuilder调底层运用,多张图片上传
查看>>
深入理解基于selenium的二次开发
查看>>
较快的maven的settings.xml文件
查看>>
Git之初体验 持续更新
查看>>
软件开发模型之瀑布模型
查看>>
Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException
查看>>