I have a DDL trigger on a database that will be enabled whenever the any table in the database is altered, and a system table will be logging the DDL commands that have been fired on any table in the database. So the commands will look like: 1) ALTER TABLE [dbo.table] ADD [column] VARCHAR(20) NULL ; 2) ALTER TABLE <dbo.table> ADD [column] VARCHAR(20) NULL CONSTRAINT [cons] UNIQUE 3) ALTER TABLE [dbo.table] WITH NOCHECK ADD CONSTRAINT [cons] CHECK ([column] > 1) ; 4) ALTER TABLE [dbo.table] WITH NOCHECK ADD [column1] VARCHAR(20) NULL, CONSTRAINT [cons] CHECK ([column] > 1); Is there any way to discern amidst the above 4 DDL statements. I'm only interested in the DDL that adds a new column to a table, and wish to retrieve only the name and datatype of this newly column. So far I've been fidgeting with functions like SUBSTRING(), LEN() and CHARINDEX() without much luck.