The answer from pvolders was just what I needed but it missed statistics which were causing and error. This is the same code, minus creating a stored procedure, plus enumerating statistics and dropping them. This is the best I could come up with so if there is a better way to determine what statistics need to be dropped please add.
DECLARE @tablename nvarchar(500), @columnname nvarchar(500)SELECT @tablename = 'tblProject', @columnname = 'CountyKey'SELECT CONSTRAINT_NAME, 'C' AS typeINTO #dependenciesFROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE WHERE TABLE_NAME = @tablename AND COLUMN_NAME = @columnnameINSERT INTO #dependenciesselect d.name, 'C'from sys.default_constraints djoin sys.columns c ON c.column_id = d.parent_column_id AND c.object_id = d.parent_object_idjoin sys.objects o ON o.object_id = d.parent_object_idWHERE o.name = @tablename AND c.name = @columnnameINSERT INTO #dependenciesSELECT i.name, 'I'FROM sys.indexes iJOIN sys.index_columns ic ON ic.index_id = i.index_id and ic.object_id=i.object_idJOIN sys.columns c ON c.column_id = ic.column_id and c.object_id=i.object_idJOIN sys.objects o ON o.object_id = i.object_idwhere o.name = @tableName AND i.type=2 AND c.name = @columnname AND is_unique_constraint = 0INSERT INTO #dependenciesSELECT s.NAME, 'S'FROM sys.stats AS sINNER JOIN sys.stats_columns AS sc ON s.object_id = sc.object_id AND s.stats_id = sc.stats_idINNER JOIN sys.columns AS c ON sc.object_id = c.object_id AND c.column_id = sc.column_idWHERE s.object_id = OBJECT_ID(@tableName)AND c.NAME = @columnnameAND s.NAME LIKE '_dta_stat%'DECLARE @dep_name nvarchar(500)DECLARE @type nchar(1)DECLARE dep_cursor CURSORFOR SELECT * FROM #dependenciesOPEN dep_cursorFETCH NEXT FROM dep_cursor INTO @dep_name, @type;DECLARE @sql nvarchar(max)WHILE @@FETCH_STATUS = 0BEGIN SET @sql = CASE @type WHEN 'C' THEN 'ALTER TABLE ['+ @tablename +'] DROP CONSTRAINT ['+ @dep_name +']' WHEN 'I' THEN 'DROP INDEX ['+ @dep_name +'] ON dbo.['+ @tablename +']' WHEN 'S' THEN 'DROP STATISTICS ['+ @tablename +'].['+ @dep_name +']' END print @sql EXEC sp_executesql @sql FETCH NEXT FROM dep_cursor INTO @dep_name, @type;ENDDEALLOCATE dep_cursorDROP TABLE #dependenciesSET @sql = 'ALTER TABLE ['+ @tablename +'] DROP COLUMN ['+ @columnname +']'print @sqlEXEC sp_executesql @sql