sql >> Database >  >> RDS >> Sqlserver

Controleer of de database bestaat voordat u deze aanmaakt

Vanaf SQL Server 2005 zijn de oude stijl sysobjects en sysdatabases en die catalogusweergaven zijn verouderd. Doe dit in plaats daarvan - gebruik de sys. schema - weergaven zoals 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;
}

Dit werkt met elke databasenaam die u als parameter doorgeeft, en het retourneert een bool true =database bestaat, false =database bestaat niet (of er is een fout opgetreden).



  1. Unieke geïndexeerde waarden overschrijven

  2. Wat gebeurt er als het kolomtype TIMESTAMP wordt gewijzigd in DATETIME in MySQL?

  3. Vier dingen die u niet wist over Amazon Aurora

  4. hoe uitvoer in een CSV-formaat te exporteren via een procedure