I\'m trying to alter a table to add a new column, then insert a new row into it.
ALTER TABLE Roles ADD ModifiedDate DateTime;
INSERT INTO Roles (Name, [Descr
As expected. SQL Server does not execute line by line. It compiles and parse the batch, and when this happens the column does not exist.
You need to decouple the 2 actions thus
ALTER TABLE Roles ADD ModifiedDate DateTime;
EXEC ('
INSERT INTO Roles (Name, [Description], CreatedBy, BuiltIn, Created, ModifiedDate)
VALUES (''Name'', ''Description'', 0, 1, GETDATE(), GETDATE())
')
A "GO" is a batch separator only for client tools and is not recognised by the server