Ejemplo n.º 1
0
        public void LoadSchema()
        {
            // clear
            SqlServerTables.Clear();
            SqlServerSequences.Clear();

            // connect & collect
            using (_connection = new SqlConnection(ConnectionString))
            {
                _connection.Open();

                GetTables();
                GetColumns();
                GetPrimaryKeys();
                GetForeignKeys();
                GetIndexes();
                GetSequences();
            }
        }
Ejemplo n.º 2
0
        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);
                    }
                }
        }