DECLARE @dropIndexSql nvarchar(4000) SET @dropIndexSql = N'DROP INDEX [Advertis].[AddUser]' BEGIN TRY PRINT @dropIndexSql EXEC sp_executesql @dropIndexSql END TRY BEGIN CATCH Print ERROR_MESSAGE() END CATCH IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Advertis' AND COLUMN_NAME = 'AddUser') BEGIN BEGIN TRY PRINT @dropIndexSql SET @dropIndexSql = N'ALTER TABLE [Advertis] ADD [AddUser] int' EXEC sp_executesql @dropIndexSql END TRY BEGIN CATCH Print ERROR_MESSAGE() END CATCH END ELSE BEGIN BEGIN TRY SET @dropIndexSql = N'ALTER TABLE [Advertis] ADD [AddUser-Temporary] int' PRINT @dropIndexSql EXEC sp_executesql @dropIndexSql SET @dropIndexSql = N'UPDATE [Advertis] SET [AddUser-Temporary]=AddUser' PRINT @dropIndexSql EXEC sp_executesql @dropIndexSql SET @dropIndexSql = N'ALTER TABLE [Advertis] DROP COLUMN [AddUser]' PRINT @dropIndexSql EXEC sp_executesql @dropIndexSql PRINT 'Renaming the field' EXEC sp_RENAME 'Advertis.AddUser-Temporary', 'AddUser' , 'COLUMN' END TRY BEGIN CATCH Print ERROR_MESSAGE() END CATCH END