master库中有一张表sysdatabases存放数据库中所有数据库名称,在每一个数据库中都有一张表sysobjects存放该数据库中所有表,触发器,视图,函数等
select * from sysdatabases where name='abc' //找数据库abc是否存在
select * from sysobjects where name='EFG' and xtype='U' //找数据库表EFG是否存在
其余的就简单了
判断数据库是否存在的方法,使用错误捕捉即可
Private Sub Command1_Click()
On Err GoTo errHandle
Dim cnn1 As adodb.Connection
Dim rstSchema As adodb.Recordset
Dim strCnn As String
Set cnn1 = New adodb.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=infofsv;Initial Catalog=aaa;User Id=sa;Password=infofsv; "
cnn1.Open strCnn
Exit Sub
errHandle:
MsgBox Err.Description
End Sub
判断表是否存在的方法
ADO的OpenSchema()方法
Dim cnn1 As adodb.Connection
Dim rstSchema As adodb.Recordset
Dim strCnn As String
Set cnn1 = New adodb.Connection
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
cnn1.Open strCnn