sql >> データベース >  >> RDS >> Sqlserver

作成前にデータベースが存在するかどうかを確認する

    SQL Server 2005 以降、古いスタイルの sysobjects および sysdatabases これらのカタログ ビューは廃止されました。代わりにこれを行います - sys. を使用してください schema - 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;
    }
    

    これは、パラメーターとして渡された任意のデータベース名で機能し、bool true =データベースが存在する、false =データベースが存在しない (またはエラーが発生した) を返します。



    1. Datetimeを使用して文字列として保存された日付を比較する

    2. 2つのテーブルからいくつかの列の合計を取得する

    3. BCPを使用してリモートSQLServerに書き込む方法は?

    4. ローカルIISではOracleORA-12154エラーが発生しますが、Visual StudioDevelopmentServerではエラーが発生しません