Сценарий SQL Server для поиска столбцов больших объектов - PullRequest
5 голосов
/ 27 сентября 2010

Ищем скрипт для сканирования всех таблиц во всех базах данных SQL Server и перечисления столбцов, которые являются большими объектами (TEXT, NTEXT,, IMAGE VARCHAR (MAX), NVARCHAR (MAX), FILESTREAM, XML, VARBINARY).

Хотя я, вероятно, могу сам это кодировать, я хочу готовый скрипт.

Ответы [ 2 ]

12 голосов
/ 27 сентября 2010
 select * from information_schema.columns where data_type in 
    ('TEXT', 'NTEXT','IMAGE' ,'XML', 'VARBINARY')
    or 
    (data_type = 'VARCHAR' and character_maximum_length = -1)
    OR
    (data_type = 'NVARCHAR' and character_maximum_length = -1)

Обновление Удален FILESTREAM из IN, поскольку тип данных VARBINARY уже записан

3 голосов
/ 27 сентября 2010

Попробуйте это

select * from information_schema.columns
where DATA_TYPE in('text','ntext','xml','image')
or  (DATA_TYPE in('varchar','nvarchar','varbinary')
and CHARACTER_MAXIMUM_LENGTH = -1)
order by DATA_TYPE

Поток файлов хранится как varbinary (max)

Это будет захватывать только varbinary (max), а не varbinary (20), например, если вы также хотите, чтобызатем переместите varbinary в первое состояние, например

 select * from information_schema.columns
    where DATA_TYPE in('text','ntext','xml','image','varbinary')
    or  (DATA_TYPE in('varchar','nvarchar')
    and CHARACTER_MAXIMUM_LENGTH = -1)
    order by DATA_TYPE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...