Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Sprawdź, czy baza danych istnieje przed utworzeniem

Począwszy od SQL Server 2005, sysobjects w starym stylu i sysdatabases a te widoki katalogu zostały wycofane. Zrób to zamiast tego - użyj sys. schemat - widoki takie jak sys.databases

private static bool CheckDatabaseExists(SqlConnection tmpConn, string databaseName)
{
    string sqlCreateDBQuery;
    bool result = false;

    try
    {
        tmpConn = new SqlConnection("server=(local)\\SQLEXPRESS;Trusted_Connection=yes");

        sqlCreateDBQuery = string.Format("SELECT database_id FROM sys.databases WHERE Name 
        = '{0}'", databaseName);

        using (tmpConn)
        {
            using (SqlCommand sqlCmd = new SqlCommand(sqlCreateDBQuery, tmpConn))
            {
                tmpConn.Open();

                object resultObj = sqlCmd.ExecuteScalar();

                int databaseID = 0;    

                if (resultObj != null)
                {
                    int.TryParse(resultObj.ToString(), out databaseID);
                }

                tmpConn.Close();

                result = (databaseID > 0);
            }
        }
    } 
    catch (Exception ex)
    { 
        result = false;
    }

    return result;
}

Będzie to działać z każdą nazwą bazy danych, którą podałeś jako parametr, i zwróci bool true =baza danych istnieje, false =baza danych nie istnieje (lub wystąpił błąd).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Optymalizacja przemijających wierszy zapytań SQL

  2. Pole XML - Zapytanie

  3. Zresetuj AutoIncrement w SQL Server po usunięciu

  4. Należy zadeklarować zmienną skalarną @ID dla parametru wstawiania

  5. Unikalny identyfikator (guid) jako klucz podstawowy w projekcie bazy danych