public void LoadSchema() { // clear SqlServerTables.Clear(); SqlServerSequences.Clear(); // connect & collect using (_connection = new SqlConnection(ConnectionString)) { _connection.Open(); GetTables(); GetColumns(); GetPrimaryKeys(); GetForeignKeys(); GetIndexes(); GetSequences(); } }
private void GetSequences() { // does not support sequences. var majorVersion = GetMajorVersion(); if (majorVersion < 11) { return; } // some sql server don't have sequences so it won't crash if we wrap it. using (var command = new SqlCommand(SqlServerShemaQueries.FetchSequences, _connection)) using (var reader = command.ExecuteReader()) { while (reader.Read()) { var seq = new Sequence(); seq.Name = (string)reader["SEQUENCE_NAME"]; seq.Schema = (string)reader["SEQUENCE_SCHEMA"]; seq.DataType = (string)reader["DATA_TYPE"]; if (false == (reader["NUMERIC_PRECISION"] is DBNull)) { seq.NumericPrecision = Convert.ToByte(reader["NUMERIC_PRECISION"]); } if (false == (reader["NUMERIC_SCALE"] is DBNull)) { seq.NumericScale = Convert.ToByte(reader["NUMERIC_SCALE"]); } seq.StartAt = reader["START_VALUE"]; seq.IncrementsBy = reader["INCREMENT"]; seq.MinValue = reader["MINIMUM_VALUE"]; seq.MaxValue = reader["MAXIMUM_VALUE"]; seq.SqlServerDatabaseSchema = this; SqlServerSequences.Add(seq); } } }