|
определить не валидные SP
|
|||
---|---|---|---|
#18+
Добрый день всем. SQL 2014 Как можно определить все не валидные SP на БД НЕ выполняя их DDL накатываются в автомат.режиме - некоторые SP и View могут стать не валидными из за изменения полей. с View проще - можно сгенерить скрипт Select top 200 * from View1,2,3 ... выполнить - и ошибки вылезут сразу. Вот бы такой фокус с SP - но выполнять их Нельзя ( это ETL - они загружают данные ) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 12:41 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
Выполнить их на тестовом окружении. Вообще, для этого придумали процесс тестирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 12:43 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
Гулин Федор, А SET FMTONLY ON не спасет? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 13:24 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
Гулин ФедорНЕ выполняя их Код: sql 1.
Даст ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 13:25 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
Вы, для начала, вменяемо опишите, что такое "валидность" и "невалидность"(кстати, пишется в одно слово). ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 13:40 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
invmГулин ФедорНЕ выполняя их Код: sql 1.
Даст ошибку. ЗОЛОТЫЕ СЛОВА !!! СПАСИБО The dependencies reported for entity "[ETL].[Account_Receivable_Fact]" might not include references to all columns. This is either because the entity references an object that does not exist or because of an error in one or more statements in the entity. Before rerunning the query, ensure that there are no errors in the entity and that all objects referenced by the entity exist. ЗЫ как чувствовал что-то такое должно быть ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 13:43 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 13:55 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
Критик Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Добавьте в запрос еще "exist" и "value", иначе XML-запросы тоже в результат валит. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 14:05 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
@Критик Интересный запрос СПС - мне пока надо тока НЕ валидные - я их списком нашел по ошибке как Invm указал но думаю будет полезен в дальнейшем не могу быстро сообразить как схему и тип (View , SP ) головоного объекта выдать ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 14:25 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
Гулин Федор , Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 21:51 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
Гулин Федор, Кстати, все эти подходы не применимы в общем случае. А точнее, когда в процедурах используется динамический SQL. Очевидно, что если ссылка на объект содержится не в тексте процедуры, а в строковой констатнте, то и проверить эту ссылку без запуска процедуры невозможно. Есть у меня решение, кстати, где подавляющее большинство хранимых процедур, выступающих в качестве источников данных отчетов, именно такие. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2017, 22:13 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
и не только из-за динамического sql Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 10:52 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
В общем случае задача не решаема. 1. из-за динамических sql 2. из-за не всегда актуальных зависимостей 3. даже выполнение не поможет - может быть ветвление (параметры, разные условия, разные данные) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 10:55 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
Ролг Хупин, авторThis includes dependences between natively compiled, scalar user-defined functions and other SQL Server modules что надо сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 10:59 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
Ролг Хупин, автор3. даже выполнение не поможет - может быть ветвление (параметры, разные условия, разные данные) ну компилируется без ветвлений ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 11:01 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
был продукт https://www.osp.ru/cw/1998/12/28318/ который в Oracle для статичных sql (на тот момент в MSSQL поля modify_date не было) позволял исправлять dependencies с помощью alter. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 11:19 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
ptr128Гулин Федор, Кстати, все эти подходы не применимы в общем случае. А точнее, когда в процедурах используется динамический SQL. Очевидно, что если ссылка на объект содержится не в тексте процедуры, а в строковой констатнте, то и проверить эту ссылку без запуска процедуры невозможно. Есть у меня решение, кстати, где подавляющее большинство хранимых процедур, выступающих в качестве источников данных отчетов, именно такие. Меня интерусует мой ЧАСТНЫЙ СЛУЧАЙ а для моего частного случая - подсказка InvM мне уже помогла я быстро понаходил ставшие не валидными SP динам. скл в данном контектсе меня не интересует в принципе у меня есть БД с > 100 SP и > 100 View (причем там куча легаси к-е и могут стать НЕ валидными - и проверяю только саб-сет ) а Критику спасибо за его запрос зы Увидел варинат Col Смотрю сейчас его - вроде там Полные имена объектов ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 17:26 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
вот лучше подскажите как типы объектов достать в запрос любой из 2-х мне бы выдать красиво SP , View SP там правда видны по префиоксу usp_ а вот таблицы от вьюх отличить с виду нельзя ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 17:31 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
Гулин ФедорМеня интерусует мой ЧАСТНЫЙ СЛУЧАЙ Ну мне же откуда знать, встречается в Ваших процедурах динамический SQL или нет? Поэтому просто предупредил ) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 17:38 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
Гулин Федор, https://docs.microsoft.com/ru-ru/sql/relational-databases/system-compatibility-views/sys-sysobjects-transact-sql Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 17:42 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
Соорян, для олл_обжекстс вот этот линк https://docs.microsoft.com/ru-ru/sql/relational-databases/system-catalog-views/sys-all-objects-transact-sql ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 17:43 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
Гулин Федорзы Увидел варинат Col Смотрю сейчас его - вроде там Полные имена объектов Они самые, где-то еще был вариант прохода по всем базам с выводом и имени базы, но чет не нахожу в запаснике, видать затерелось где в черновиках. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2017, 21:12 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
чисто косметические изменения под себя - чтобы типы объектов были (я так понимаю по ) Всем СПАСИБО за идеи и обсуждение. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 13:01 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
PS мысль не закончил - в общем случае раз есть referenced_server_name , referenced_database_name то возможно найдет нестыковки и по ссылкам на другие БД и линк-сервера но это я не проверял ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2017, 13:05 |
|
определить не валидные SP
|
|||
---|---|---|---|
#18+
через N лет возникла такая же задача но чтобы еще выдавало с полями НЕ корректными (последний запрос работает ОК ) но туда не попадают SP ссылающиеся на поля к-е были переимунованы Код: sql 1.
причем в SSMS показывает красным но Alter Procedure без проблем Как бы это отловить ставшие невалидными поля (учитывая то что в #Temp таблицах они могут назыавться по старому) любые идели велком ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2020, 10:40 |
|
|
start [/forum/topic.php?fid=46&msg=39571920&tid=1686622]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 328ms |
total: | 472ms |
0 / 0 |