Вы всегда можете проверить вид sys.columns
каталога:
SELECT
c.NAME 'Col Name',
OBJECT_NAME(c.OBJECT_ID) 'Table Name',
t.name
FROM
sys.columns c
INNER JOIN
sys.types t ON c.system_type_id = t.system_type_id
WHERE
c.Name = 'your-column-name-here'
и на основе этой информации, вы можете генерировать операторы ALTER для базы данных:
SELECT
'ALTER TABLE dbo.' + OBJECT_NAME(c.OBJECT_ID) +
' ALTER COLUMN ' + c.NAME ' NewDataType NULL'
FROM
sys.columns c
WHERE
c.Name = 'your-column-name-here'
Этот запрос генерирует набор операторов ALTER TABLE ....
, которые затем можно скопировать в окно запроса SSMS и ex ecute.
Слово предупреждения: если какой-либо из столбцов ссылается - в отношении внешнего ключа или если на них есть ограничение по умолчанию или проверка - этот подход может завершиться неудачно. В этом случае вам нужно будет сделать несколько дополнительных шагов для этих столбцов (например, сначала отбросить ограничения и т. Д.)
Обновление: это ищет столбцы, как определено в таблицах.
Если вам нужно искать в хранимые процедуры, представления и функции, а также, я бы настоятельно рекомендовал использовать Red-Gate отличными и бесплатно (!!) SQL Search утилита - отличный материал!
С какими типами данных вы переходите от и до? –
Одна проблема: даже если у вас был такой скрипт, он не сможет охватить любые динамические операторы SQL (EXEC) или ad-hoc SQL, которые могут быть созданы вашим приложением. – JohnFx
Я немного перехожу к varchar (1). – Aaron