Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как найти все не используемые поля в БД  [new]
Vicont_rtf
Member

Откуда:
Сообщений: 64
Доброе время суток, ситуация в следующем - есть БД её переводили с течением времени MSSQL2000 ... до MSSQL2008R2, разработчиков было много, документации нет никакой. Необходимо найти все не используемые поля (т.е. во всех записях таблицы значение поля = NULL). Подскажите как получить список таблиц и соответствующих полей БД. :( без динамических запросов. (MS SQL Server 2008 R2 SP1)
19 апр 12, 17:01    [12441028]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 852
Vicont_rtf,

SELECT * FROM INFORMATION_SCHEMA.COLUMNS
19 апр 12, 17:05    [12441049]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
Vicont_rtf
Member

Откуда:
Сообщений: 64
flexgen
Vicont_rtf,

SELECT * FROM INFORMATION_SCHEMA.COLUMNS


ОБЪЯСНИТЕ как я могу этот запрос использовать?
19 апр 12, 17:20    [12441134]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vicont_rtf
ОБЪЯСНИТЕ как я могу этот запрос использовать?

Выполнить его и "получить список таблиц и соответствующих полей БД."
19 апр 12, 17:24    [12441172]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
Vicont_rtf
Member

Откуда:
Сообщений: 64
Glory
Vicont_rtf
ОБЪЯСНИТЕ как я могу этот запрос использовать?

Выполнить его и "получить список таблиц и соответствующих полей БД."


Но тема звучит так "Как найти все не используемые поля в БД"
Извиняюсь если чего лишнего написал, но мне нужно найти список полей БД, значения которых во всех записях таблицы = NULL
19 апр 12, 17:28    [12441211]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ну вот выполняете SELECT * FROM INFORMATION_SCHEMA.COLUMNS в вашем клиентском приложении
И по полученному результату начинаете проверять каждое поле запросом.
19 апр 12, 17:30    [12441229]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
Vicont_rtf
Member

Откуда:
Сообщений: 64
Glory
Ну вот выполняете SELECT * FROM INFORMATION_SCHEMA.COLUMNS в вашем клиентском приложении
И по полученному результату начинаете проверять каждое поле запросом.


Такой способ не приемлем, возможно будут другие предложения?
19 апр 12, 17:33    [12441250]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
Glory
Member

Откуда:
Сообщений: 104751
Vicont_rtf
Такой способ не приемлем, возможно будут другие предложения?

забить.
19 апр 12, 17:35    [12441264]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
Vicont_rtf,
Такой же вопрос
http://forum.oszone.net/post-1707061.html
19 апр 12, 18:07    [12441476]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
iljy
Member

Откуда:
Сообщений: 8711
Vicont_rtf
Glory
Ну вот выполняете SELECT * FROM INFORMATION_SCHEMA.COLUMNS в вашем клиентском приложении
И по полученному результату начинаете проверять каждое поле запросом.


Такой способ не приемлем, возможно будут другие предложения?

Все-таки нет предела лени человеческой. Тривиальный в общем-то скрипт написать - тааакая гигантская проблема, прям ух!
19 апр 12, 18:18    [12441531]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2793
Vicont_rtf
Такой способ не приемлем, возможно будут другие предложения?
Попросить Microsoft, чтобы он сделал в MS SQL Server такую функцию.
19 апр 12, 18:34    [12441612]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Prolog, за что вы так Microsoft ненавидите?

Типа задача может иметь решение в общем виде. Ага.

Это не говоря о том что подразумевается под словом "не используемые", у меня минимум 3 смысла в голову приходят.
19 апр 12, 22:47    [12442696]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Vicont_rtf
Glory
Ну вот выполняете SELECT * FROM INFORMATION_SCHEMA.COLUMNS в вашем клиентском приложении
И по полученному результату начинаете проверять каждое поле запросом.


Такой способ не приемлем, возможно будут другие предложения?
Нанять сотню операторов, чтобы они вручную просмотрели все таблицы и поля на наличие данных. Такой вариант более приемлемый?
20 апр 12, 03:01    [12443262]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
Elias33
Member

Откуда: Питер
Сообщений: 80
Vicont_rtf
Необходимо найти все не используемые поля (т.е. во всех записях таблицы значение поля = NULL).


Интересно, зачем. Удалять эти поля, и смотреть где что навернется на клиенте?

Вообще говоря, "неиспользуемые поля" и "везде NULL" - это сильно разные вещи :)

Самый лучший вариант (сам так делал, ну если структура не шибко большая - сотня-две табличек) - "запихнуть" структуру себе в голову (пишу как думаю, не знаю как еще сказать), а потом уже понятно будет какие поля лишние, неважно, NULL там или не NULL :)
20 апр 12, 12:40    [12444927]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Есть ещё один способ, сапёр называется.
Переименовываете колонку/таблицу/объект и если не "рвануло" в течении времени N, то потом смело дропаете.
20 апр 12, 16:42    [12447102]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
ambarka_max
Member

Откуда: Россия
Сообщений: 517
Сапер хорошо, но опасно часто практиковать.
Мы просто ищем по syscomments, определяя тем самым процедуры, функции и т.д, далее по всем клиентским приложениям и интерфейсам тоже, если там есть голый sql. А он может быть и в 1С и в проекте клиентского приложения. И вырезаем, вырезаем, вырезаем это г... но субъективно его нифига меньше не становится.

epicfail
20 апр 12, 17:46    [12447707]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
ambarka_max
Мы просто ищем по syscomments, определяя тем самым процедуры, функции и т.д, далее по всем клиентским приложениям и интерфейсам тоже, если там есть голый sql.
Хе, естественно, что после поиска во всём доступном коде.
Это я к тому, что даже если "всё" проверить, это всё равно сапёр, т.к. рельно всё проверить нереально, особенно в бардаке.
А бардак в первую очередь в ДНК.
21 апр 12, 15:45    [12450804]     Ответить | Цитировать Сообщить модератору
 Re: Как найти все не используемые поля в БД  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
автор
до MSSQL2008R2


BOL->sys.dm_sql_referenced_entities
21 апр 12, 18:19    [12451112]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить