public static SeedInfo GetSeedInfo(ITable table)
        {
            using (var tr = new Transaction())
            {
                string?message = null;

                ((SqlConnection)Transaction.CurrentConnection !).InfoMessage += (object sender, SqlInfoMessageEventArgs e) => { message = e.Message; };

                Executor.ExecuteNonQuery("DBCC CHECKIDENT ('{0}', NORESEED)".FormatWith(table.Name));

                if (message == null)
                {
                    throw new InvalidOperationException("DBCC CHECKIDENT didn't write a message");
                }

                Match m = IdentityMessageRegex.Match(message);

                if (!m.Success)
                {
                    throw new InvalidOperationException("DBCC CHECKIDENT messege has invalid format");
                }

                SeedInfo result = new SeedInfo
                {
                    Identity = SeedInfo.Parse(m.Groups["identity"].Value),
                    Column   = SeedInfo.Parse(m.Groups["column"].Value),
                };

                return(tr.Commit(result));
            }
        }
        public static SeedInfo GetSeedInfo(ITable table)
        {
            using (Transaction tr = new Transaction())
            {
                string message = null;

                ((SqlConnection)Transaction.CurrentConnection).InfoMessage += (object sender, SqlInfoMessageEventArgs e) => { message = e.Message; };

                Executor.ExecuteNonQuery("DBCC CHECKIDENT ('{0}', NORESEED)".FormatWith(table.Name));

                if (message == null)
                    throw new InvalidOperationException("DBCC CHECKIDENT didn't write a message");
                 
                Match m = IdentityMessageRegex.Match(message);
                
                if (!m.Success)
                    throw new InvalidOperationException("DBCC CHECKIDENT messege has invalid format");

                SeedInfo result = new SeedInfo
                {
                    Identity = SeedInfo.Parse(m.Groups["identity"].Value),
                    Column = SeedInfo.Parse(m.Groups["column"].Value),
                };

                return tr.Commit(result);
            }
        }