如何检查表格是否存在?
使用VB 6.0。
使用VB 6.0。
cmd.CommandText = "drop table t1"
cmd.Execute
以上代码工作正常,但如果表不存在,则会显示“表不存在”
如何检查表是否存在或不存在?
需要VB代码帮助吗?
如果你只想删除表而不出现错误信息,且使用MySQL,可以使用以下SQL语句。
DROP TABLE t1 IF EXISTS
其他数据库也有类似的功能,但语法不同。在MSSQL中执行相同操作的方法如下:
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 't1') DROP TABLE t1;
对于Jet MDB(以及可能适用于许多OLEDB提供程序),您可以采用以下方法:
Private Sub Main()
Dim cnDB As ADODB.Connection
Set cnDB = New ADODB.Connection
cnDB.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Jet OLEDB:Engine Type=5;Data Source='sample.mdb'"
'Check presence of table --------------
Dim rsSchema As ADODB.Recordset
Set rsSchema = _
cnDB.OpenSchema(adSchemaColumns, _
Array(Empty, Empty, "t1", Empty))
If rsSchema.BOF And rsSchema.EOF Then
MsgBox "Table does not exist"
Else
MsgBox "Table exists"
End If
rsSchema.Close
Set rsSchema = Nothing
'--------------------------------------
cnDB.Close
End Sub
SELECT 1 as Exists FROM sysobjects WHERE name = 't1'
Sql Server 2005/2008:
SELECT 1 as Exists FROM sys.objects WHERE name = 't1'
然后你可以像这样使用VB:
Dim rs as Recordset
Dim iExists as Integer
rs = cmd.Execute
On Error Goto DoesNotExist
rs.MoveFirst
iExists = CInt(rs!Exists)
DoesNotExist:
If iExists = 1 Then
' Put code here for if the table exists
Else
' Put code here for if the table does not exist
End If
注意:这段代码需要整理和"投产"(也就是说,我实际上没有测试它是否有效,因为我在这台机器上没有VB6)