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