private void GetSequences() { var command = _connection.CreateCommand(); command.CommandText = @"SELECT name, is_cycling, CAST(minimum_value AS bigint) as [minimum_value], CAST(maximum_value AS bigint) as [maximum_value], CAST(start_value AS bigint) as [start_value], CAST(increment AS int) as [increment], TYPE_NAME(user_type_id) as [type_name], OBJECT_SCHEMA_NAME(object_id) AS [schema_name] FROM sys.sequences"; using (var reader = command.ExecuteReader()) { var dboIdx = reader.GetOrdinal("schema_name"); var typeIdx = reader.GetOrdinal("type_name"); var nameIdx = reader.GetOrdinal("name"); var cycleIdx = reader.GetOrdinal("is_cycling"); var minIdx = reader.GetOrdinal("minimum_value"); var maxIdx = reader.GetOrdinal("maximum_value"); var startIdx = reader.GetOrdinal("start_value"); var incrIdx = reader.GetOrdinal("increment"); while (reader.Read()) { var sequence = new SequenceModel { SchemaName = reader.GetStringOrNull(dboIdx), Name = reader.GetStringOrNull(nameIdx), DataType = reader.GetStringOrNull(typeIdx), IsCyclic = reader.GetBoolean(cycleIdx), IncrementBy = reader.GetInt32(incrIdx), Start = reader.GetInt64(startIdx), Min = reader.GetInt64(minIdx), Max = reader.GetInt64(maxIdx) }; if (string.IsNullOrEmpty(sequence.Name)) { Logger.LogWarning(SqlServerDesignStrings.SequenceNameEmpty(sequence.SchemaName)); continue; } if (_defaultSequenceMinMax.ContainsKey(sequence.DataType)) { var defaultMin = _defaultSequenceMinMax[sequence.DataType][0]; sequence.Min = sequence.Min == defaultMin ? null : sequence.Min; sequence.Start = sequence.Start == defaultMin ? null : sequence.Start; var defaultMax = _defaultSequenceMinMax[sequence.DataType][1]; sequence.Max = sequence.Max == defaultMax ? null : sequence.Max; } _databaseModel.Sequences.Add(sequence); } } }
private void GetSequences() { var command = _connection.CreateCommand(); command.CommandText = @"SELECT name, is_cycling, CAST(minimum_value AS bigint) as [minimum_value], CAST(maximum_value AS bigint) as [maximum_value], CAST(start_value AS bigint) as [start_value], CAST(increment AS int) as [increment], TYPE_NAME(user_type_id) as [type_name], OBJECT_SCHEMA_NAME(object_id) AS [schema_name] FROM sys.sequences"; using (var reader = command.ExecuteReader()) { while (reader.Read()) { var sequence = new SequenceModel { Database = _databaseModel, SchemaName = reader.GetValueOrDefault <string>("schema_name"), Name = reader.GetValueOrDefault <string>("name"), DataType = reader.GetValueOrDefault <string>("type_name"), IsCyclic = reader.GetValueOrDefault <bool?>("is_cycling"), IncrementBy = reader.GetValueOrDefault <int?>("increment"), Start = reader.GetValueOrDefault <long?>("start_value"), Min = reader.GetValueOrDefault <long?>("minimum_value"), Max = reader.GetValueOrDefault <long?>("maximum_value") }; Logger.LogTrace(SqlServerDesignStrings.FoundSequence( sequence.SchemaName, sequence.Name, sequence.DataType, sequence.IsCyclic, sequence.IncrementBy, sequence.Start, sequence.Min, sequence.Max)); if (string.IsNullOrEmpty(sequence.Name)) { Logger.LogWarning(SqlServerDesignStrings.SequenceNameEmpty(sequence.SchemaName)); continue; } if (_defaultSequenceMinMax.ContainsKey(sequence.DataType)) { var defaultMin = _defaultSequenceMinMax[sequence.DataType][0]; sequence.Min = sequence.Min == defaultMin ? null : sequence.Min; sequence.Start = sequence.Start == defaultMin ? null : sequence.Start; var defaultMax = _defaultSequenceMinMax[sequence.DataType][1]; sequence.Max = sequence.Max == defaultMax ? null : sequence.Max; } _databaseModel.Sequences.Add(sequence); } } }