DECLARE @has_column NVARCHAR(MAX), @table_name NVARCHAR(MAX), @column_name NVARCHAR(MAX), @column_type NVARCHAR(MAX) SET @table_name = '[dbo].[recibo]' SET @column_name = 'tiporecibo' SELECT @has_column = COL_LENGTH(@table_name, 'tiporecibo') SELECT @column_type = DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'recibo' AND COLUMN_NAME = 'tiporecibo' DECLARE @sql NVARCHAR(MAX) = N'ALTER TABLE ' + @table_name + N' ALTER COLUMN ' + @column_name + N' ' + CASE WHEN(@column_type = 'nvarchar' OR @column_type = 'varchar') THEN 'NVARCHAR(255)' ELSE 'INTEGER' END + N' NULL;' IF @has_column IS NOT NULL exec sp_executesql @sql