想在VB中写代码来判断:
1、当软件运行时如果数据库Database1及其表Table1都存在,就什么都不干,直接执行其它代码;
2、当软件运行时如果数据库Database1存在,但不存在表Table1,就建立该表,然后运行其它代码;
3、当软件运行时如果数据库Database1和其表Table1都不存在,就建立数据库Database1和表Table1请教:怎么在vb中实现?
谢谢先!

解决方案 »

  1.   

    IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'Database1')
      

  2.   

    判断某个数据库中的表是否存在,可以使用adox:
    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
      

  3.   

    select * from sysobjects where name='table1' 
      

  4.   

    IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = '库名')
    print '存在'if exists (select * from sysobjects where id = object_id('表名')
    print '存在'
      

  5.   

    请问:小马哥的那个object_id()函数是什么意思?
    请教!
      

  6.   

    在SQL中表也是对象,object_id('表名')代表表的唯一标示。
      

  7.   

    SQL SERVER 中有系统表,打开它的企业管理器,打开数据库中的表,可以看到下边有许多的系统表,相信你的SELECT 不错,那你就 SELECT .....WHERE  (系统表),这样不就是知道有没有哪个表了吗。
      还有    如 果err.number 为 -2147467259 则数据库里根本没有这数据库。