Пример #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));
            }
        }
Пример #4
0
        public bool IsFullTextEnabled(IDbConnection connection, string tableName)
        {
            string sqlQuery = $@"SELECT convert(int, SERVERPROPERTY('IsFullTextInstalled')) + OBJECTPROPERTY(OBJECT_ID('{tableName}'), 'TableFullTextChangeTrackingOn')";
            var    records  = new AdhocSqlRunner(() =>
            {
                var dbCommand        = CreateDbCommand();
                dbCommand.Connection = connection;
                return(dbCommand);
            }).ExecuteReader(sqlQuery);

            bool isEnabled   = false;
            var  firstRecord = records.FirstOrDefault();

            if (firstRecord != null)
            {
                int i;
                if (int.TryParse(firstRecord.First().Value, out i) && i == 2)
                {
                    isEnabled = true;
                }
            }

            return(isEnabled);
        }