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)); }
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)); }
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)); }