Esempio n. 1
0
        public IEnumerable <Batch> GetBatches(List <string> objectFilter)
        {
            // object_name() can return NULL on permissions failures
            var table =
                _databaseGateway.GetRecords(
                    @"
select object_id, ISNULL('[' + object_schema_name(object_id) + '].[' + object_name(object_id) + ']', 'Object ' + CAST(object_id as nvarchar(12))) as object_name, definition, uses_quoted_identifier 
from sys.sql_modules 
where object_id not in (select object_id from sys.objects where type = 'IF')
");

            var batches = new List <Batch>();

            var version         = GetVersion();
            var excludedObjects = GetExcludedObjects();

            if (objectFilter == null)
            {
                objectFilter = new List <string>();
            }

            objectFilter.Add(".*tSQLt.*");

            foreach (DataRow row in table.Rows)
            {
                var quoted = (bool)row["uses_quoted_identifier"];

                var name = row["object_name"] as string;

                if (name != null && row["object_id"] as int? != null && DoesNotMatchFilter(name, objectFilter, excludedObjects))
                {
                    batches.Add(
                        new Batch(new StatementParser(version), quoted, EndDefinitionWithNewLine(GetDefinition(row)), null, name, (int)row["object_id"]));
                }
            }

            table.Dispose();

            foreach (var batch in batches)
            {
                batch.StatementCount = batch.Statements.Count(p => p.IsCoverable);
            }

            return(batches.Where(p => p.StatementCount > 0));
        }
Esempio n. 2
0
        public IEnumerable <Batch> GetBatches(List <string> objectFilter)
        {
            var table =
                _databaseGateway.GetRecords(

                    "SELECT sm.object_id, ISNULL('[' + OBJECT_SCHEMA_NAME(sm.object_id) + '].[' + OBJECT_NAME(sm.object_id) + ']', '[' + st.name + ']')  object_name, sm.definition, sm.uses_quoted_identifier FROM sys.sql_modules sm LEFT JOIN sys.triggers st ON st.object_id = sm.object_id WHERE sm.object_id NOT IN(SELECT object_id FROM sys.objects WHERE type = 'IF'); ");

            var batches = new List <Batch>();

            var version         = GetVersion();
            var excludedObjects = GetExcludedObjects();

            if (objectFilter == null)
            {
                objectFilter = new List <string>();
            }

            objectFilter.Add(".*tSQLt.*");

            foreach (DataRow row in table.Rows)
            {
                var quoted = (bool)row["uses_quoted_identifier"];

                var name = row["object_name"] as string;

                if (name != null && row["object_id"] as int? != null && DoesNotMatchFilter(name, objectFilter, excludedObjects))
                {
                    batches.Add(
                        new Batch(new StatementParser(version), quoted, EndDefinitionWithNewLine(GetDefinition(row)), name, name, (int)row["object_id"]));
                }
            }

            table.Dispose();

            foreach (var batch in batches)
            {
                batch.StatementCount = batch.Statements.Count(p => p.IsCoverable);
            }

            return(batches.Where(p => p.StatementCount > 0));
        }
Esempio n. 3
0
        public IEnumerable <Batch> GetBatches(List <string> objectFilter)
        {
            var table =
                _databaseGateway.GetRecords(
                    "select object_id, \'[\' + object_schema_name(object_id) + \'].[\' + object_name(object_id) + \']\' as object_name, definition, uses_quoted_identifier from sys.sql_modules where object_id not in (select object_id from sys.objects where type = 'IF')");

            var batches = new List <Batch>();

            var version         = GetVersion();
            var excludedObjects = GetExcludedObjects();

            if (objectFilter == null)
            {
                objectFilter = new List <string>();
            }

            objectFilter.Add(".*tSQLt.*");

            foreach (DataRow row in table.Rows)
            {
                var quoted = (bool)row["uses_quoted_identifier"];

                var name = (string)row["object_name"];

                if (DoesNotMatchFilter(name, objectFilter, excludedObjects))
                {
                    batches.Add(
                        new Batch(new StatementParser(version), quoted, EndDefinitionWithNewLine(GetDefinition(row)), null, name, (int)row["object_id"]));
                }
            }

            table.Dispose();

            foreach (var batch in batches)
            {
                batch.StatementCount = batch.Statements.Count(p => p.IsCoverable);
            }

            return(batches.Where(p => p.StatementCount > 0));
        }