Visual C# Developer Center > Visual C# Forums > Visual C# General > SMO Database and Table Exist??
Ask a questionAsk a question
 

AnswerSMO Database and Table Exist??

  • Friday, November 06, 2009 11:26 AMDaleTurley Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Has Code
    Hi,

    Can anyone tell me how i can find out if a database and a table exist in SQL Server using SMO?
    Googling and Binging the answers haven't helped so far.

    I have this function but i can't find these missing bits. (db.Exists() or tbl.Exists() equivalents)
            public bool SourceExists()
            {
                if (sourceIntegrated)
                {
                    try
                    {
                        ServerConnection conn = new ServerConnection(sourceServer);
                        conn.LoginSecure = true;
                        conn.Connect();
                        Server sServer = new Server(conn);
                        Database db = new Database(sServer, "msdb");
                        // db.Exists() ?????
                        Table tbl = new Table(db, "sysobjects");
                        // tbl.Exists() ????
                    }
                    catch (Exception exc)
                    {
                        Console.WriteLine("Exception: {0}", exc.Message);
                    }
                }
                return false;
            }

    Thanks
    Dale

Answers

  • Friday, November 06, 2009 12:49 PMpepkk Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     AnswerHas Code
    Hey
    try this. it worked for me

    Server srvMgmtServer = default(Server);
    srvMgmtServer = new Server("<sqlserver location>");
    ServerConnection srvConn = default(ServerConnection);
    srvConn = srvMgmtServer.ConnectionContext;
    srvConn.LoginSecure = true;
    
    Database sourceDatabase = srvMgmtServer.Databases["Northwind"];
    if (sourceDatabase.Tables.Contains("Orders", "dbo"))
          MessageBox.Show("Tbl Exists");
    else
          MessageBox.Show("Tbl does exists");
    

    Don't forget to click "Mark as Answer" on the post that helped you. This credits that member, earns you a point and marks your thread as Resolved so everyone will know you have been helped.
    • Marked As Answer byDaleTurley Friday, November 06, 2009 1:45 PM
    •  

All Replies

  • Friday, November 06, 2009 12:49 PMpepkk Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     AnswerHas Code
    Hey
    try this. it worked for me

    Server srvMgmtServer = default(Server);
    srvMgmtServer = new Server("<sqlserver location>");
    ServerConnection srvConn = default(ServerConnection);
    srvConn = srvMgmtServer.ConnectionContext;
    srvConn.LoginSecure = true;
    
    Database sourceDatabase = srvMgmtServer.Databases["Northwind"];
    if (sourceDatabase.Tables.Contains("Orders", "dbo"))
          MessageBox.Show("Tbl Exists");
    else
          MessageBox.Show("Tbl does exists");
    

    Don't forget to click "Mark as Answer" on the post that helped you. This credits that member, earns you a point and marks your thread as Resolved so everyone will know you have been helped.
    • Marked As Answer byDaleTurley Friday, November 06, 2009 1:45 PM
    •  
  • Friday, November 06, 2009 1:45 PMDaleTurley Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    So simple i almost feel foolish :)

    thanks