Пример #1
0
        public void VerifySchema()
        {
            if (string.IsNullOrEmpty(Config.DefaultSchema))
            {
                return;
            }

            // TODO: consider database provider
            var sqlRunner = new AdhocSqlRunner(() => CreateCommand());

            sqlRunner.ExecuteNonQuery($@"IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = N'{Config.DefaultSchema}') Exec('CREATE SCHEMA [{Config.DefaultSchema}]')");
        }
Пример #2
0
 void IDatabaseDDLProvider.CreateDatabase(DatabaseInfo dbInfo)
 {
     if (dbInfo.DbProvider != DbProviders.SqlServer)
     {
         throw new InvalidOperationException("Invalid database provider");
     }
     using (var sqlConnection = GetConnectionFactory(BuildMasterDatabaseConnectionString(dbInfo))())
     {
         sqlConnection.Open();
         var sqlRunner = new AdhocSqlRunner(() => sqlConnection.CreateCommand());
         sqlRunner.ExecuteNonQuery(@"CREATE DATABASE [@database]".Replace("@database", dbInfo.InitialCatalog));
     }
 }
Пример #3
0
        void IDatabaseDDLProvider.DropDatabase(DatabaseInfo dbInfo)
        {
            using (var sqlConnection = GetConnectionFactory(BuildMasterDatabaseConnectionString(dbInfo))())
            {
                sqlConnection.Open();
                var sqlRunner = new AdhocSqlRunner(() => sqlConnection.CreateCommand());
                sqlRunner.ExecuteNonQuery(@"
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'@database')
BEGIN 
    ALTER DATABASE [@database] 
    SET OFFLINE 
    WITH ROLLBACK IMMEDIATE;

    ALTER DATABASE [@database]
    SET ONLINE;

    DROP DATABASE [@database]; 
END
".Replace("@database", dbInfo.InitialCatalog));
            }
        }