Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ администраторы систСм 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ прямого доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π”. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, устранСния Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ провСдСния слоТной ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° стандартныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ нСдостаточно Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ. Однако Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² 1Π‘ ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности: ΠΈΠΌΠ΅Π½Π° физичСских Ρ‚Π°Π±Π»ΠΈΡ† Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ справочники ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹.

Поиск Π½ΡƒΠΆΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ понимания Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ схСму Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ зависимости ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ β€” Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ 1Π‘ 7.7 ΠΈΠ»ΠΈ соврСмСнныС Ρ€Π΅Π»ΠΈΠ·Ρ‹ 8.3 β€” ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ имСнования ΠΈ хранСния ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ отличаСтся. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ поиска, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ SQL-запросы ΠΈ Π½ΡŽΠ°Π½ΡΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ систСмами управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Для эффСктивной Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Π°ΠΌ потрСбуСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‚ΡŒ синтаксис SQL, Π½ΠΎ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ структуру слуТСбных Ρ‚Π°Π±Π»ΠΈΡ† самой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠœΡ‹ рассмотрим ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ быстро ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ физичСскоС имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΏΠΎ Π΅Π΅ логичСскому ΠΈΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅. Π­Ρ‚ΠΎ Π·Π½Π°Π½ΠΈΠ΅ критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ написании запросов для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ слоТных ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… сцСнариСв.

Различия Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ хранСния Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ 7.7 ΠΈ 8.x

ΠŸΠ΅Ρ€Π²ΠΎΠ΅, с Ρ‡Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ поиска, β€” это вСрсия ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π’ 1Π‘ 7.7 структура Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π±Ρ‹Π»Π° максимально ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠΉ ΠΈ плоской. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ справочник"НомСнклатура", хранился Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ часто Π±Ρ‹Π»ΠΎ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятным ΠΈΠ»ΠΈ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π»ΠΎ написаниС прямых SQL-запросов, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠ³ ΠΏΡ€Π΅Π΄ΡƒΠ³Π°Π΄Π°Ρ‚ΡŒ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Π‘ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΎΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ 8.0 ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… вСрсий Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° измСнилась Π² сторону большСй абстракции ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… с тСхничСскими ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, содСрТащими Ρ…Π΅ΡˆΠΈ ΠΈΠ»ΠΈ слуТСбныС прСфиксы. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй ΠΈ рСгистров, Π³Π΄Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π±ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° мноТСство физичСских Ρ‚Π°Π±Π»ΠΈΡ† для ускорСния Π²Ρ‹Π±ΠΎΡ€ΠΎΠΊ.

Π’ соврСмСнных вСрсиях 1Π‘ 8.3 прямоС соотвСтствиС"ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ β€” ΠΎΠ΄Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π°" часто Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ΡΡ. НапримСр, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… с Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ, Π° Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ характСристик. Π­Ρ‚ΠΎ услоТняСт Π·Π°Π΄Π°Ρ‡Ρƒ поиска, трСбуя использования ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… слуТСбных Ρ‚Π°Π±Π»ΠΈΡ† ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² Ρ€ΠΎΠ»ΠΈ ΠΊΠ°Ρ€Ρ‚Ρ‹ соотвСтствия.

ПониманиС этих Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ спасСт вас ΠΎΡ‚ ошибок ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ скрипты ΠΎΡ‚ старой вСрсии ΠΊ Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅. Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ с сСдьмой вСрсии, структура Ρ‚Π°Π±Π»ΠΈΡ† ΠΌΠΎΠ³Π»Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ Π² Ρ…ΠΎΠ΄Π΅ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ, ΠΈ старыС ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠ³ΡƒΡ‚ большС Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ.

Поиск Ρ‚Π°Π±Π»ΠΈΡ† Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ 7.7

Π’ ΠΌΠΈΡ€Π΅ 1Π‘ 7.7 Π·Π°Π΄Π°Ρ‡Π° нахоТдСния Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ благодаря Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ имСнования. Имя физичСской Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ формируСтся ΠΏΡƒΡ‚Π΅ΠΌ добавлСния прСфикса ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…. Для Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… Π±Π°Π· это Π²ΠΈΠ΄Π½ΠΎ нСпосрСдствСнно Π² структурС Ρ„Π°ΠΉΠ»ΠΎΠ², Π° для ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° β€” Π² схСмС SQL.

Π§Π°Ρ‰Π΅ всСго ΠΈΠΌΠ΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ† Π² 7.7 Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с прСфикса _ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. НапримСр, справочник"ΠšΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Ρ‹" с большой Π΄ΠΎΠ»Π΅ΠΉ вСроятности Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ, содСрТащим слово Contragents ΠΈΠ»ΠΈ _Reference123, Π³Π΄Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹ β€” это Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Однако Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ систСмныС прСдставлСния Π‘Π£Π‘Π”.

Если ваша Π±Π°Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° MS SQL Server, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ запрос ΠΊ систСмной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ sysobjects ΠΈΠ»ΠΈ sys.tables. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ Π½Π°ΠΉΡ‚ΠΈ срСди Π½ΠΈΡ… Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΏΠΎ маскС ΠΈΠΌΠ΅Π½ΠΈ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ унивСрсалСн ΠΈ Π½Π΅ зависит ΠΎΡ‚ спСцифики имСнования Π²Π½ΡƒΡ‚Ρ€ΠΈ 1Π‘.

SELECT name FROM sys.tables WHERE name LIKE'%Nom%' ORDER BY name;

Π­Ρ‚ΠΎΡ‚ запрос Π²Π΅Ρ€Π½Π΅Ρ‚ всС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π² ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… встрСчаСтся подстрока"Nom", Ρ‡Ρ‚ΠΎ часто соотвСтствуСт слову"НомСнклатура". Π’ 1Π‘ 7.7 Ρ‚Π°ΠΊΠΆΠ΅ сущСствовала Ρ‚Π°Π±Π»ΠΈΡ†Π° _Params ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ слуТСбныС структуры, Π³Π΄Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ настройки, Π½ΠΎ основныС бизнСс-Π΄Π°Π½Π½Ρ‹Π΅ Π»Π΅ΠΆΠ°Π»ΠΈ Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ….

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ 1Π‘ 7.7 ΠΏΡ€ΠΈ прямом ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· SQL Π²Ρ‹ рискуСтС Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ссылок, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ контроля Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² этой вСрсии ΠΌΠ΅Π½Π΅Π΅ строгиС ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с 8.x. ВсСгда Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€Π°Π²ΠΊΠΎΠΉ.

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΎΠΉ вСрсиСй 1Π‘ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
1Б 7.7 (Ѐайловая)
1Б 8.3 (Ѐайловая)
1Π‘ 8.3 (SQL Server)
1Π‘ 8.3 (PostgreSQL)
Другая вСрсия

ИспользованиС слуТСбной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ _Metadata Π² 1Π‘ 8.x

Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… сСрии 8.x основным инструмСнтом для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ структурС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… являСтся слуТСбная Ρ‚Π°Π±Π»ΠΈΡ†Π° _Metadata. ИмСнно ΠΎΠ½Π° содСрТит (соотвСтствиС) ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΈΡ… физичСским прСдставлСниСм Π² Π‘Π£Π‘Π”. Π‘Π΅Π· обращСния ΠΊ этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ поиск Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π°Π½Π½Ρ‹Ρ… прСвращаСтся Π² Π³Π°Π΄Π°Π½ΠΈΠ΅.

Π’Π°Π±Π»ΠΈΡ†Π° _Metadata Ρ…Ρ€Π°Π½ΠΈΡ‚ записи ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…: справочниках, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…, рСгистрах свСдСний ΠΈ накоплСния. Π’ Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, содСрТащиС имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° языкС ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, Π΅Π³ΠΎ синоним ΠΈ, самоС Π³Π»Π°Π²Π½ΠΎΠ΅, имя физичСской Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ прСфикс Ρ‚Π°Π±Π»ΠΈΡ†, Π³Π΄Π΅ хранятся Π΄Π°Π½Π½Ρ‹Π΅ этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Для поиска Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ SQL-запрос, Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· _Metadata. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° этой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Ρ€Π΅Π»ΠΈΠ·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ Ρ‚ΠΈΠΏΠ° Π‘Π£Π‘Π”, Π½ΠΎ основныС поля ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Π’Π°ΠΌ потрСбуСтся Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ»Π΅, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π΅ Π·Π° имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΈ ΠΏΠΎΠ»Π΅, содСрТащСС тСхничСскоС имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

SELECT fClassName, fTableName FROM _Metadata WHERE fClassName LIKE'%Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.НомСнклатура%';

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ запроса Π±ΡƒΠ΄Π΅Ρ‚ имя физичСской Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ _Reference156 ΠΈΠ»ΠΈ _IR000000123. Зная это имя, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ дальнСйшиС запросы для Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, присоСдинСния ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° индСксов. Π­Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ способ, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ структурС Π±Π°Π·Ρ‹.

πŸ’‘

Имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² 1Π‘ 8.x ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ послС обновлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ измСнСния свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅. ВсСгда провСряйтС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ имя Ρ‡Π΅Ρ€Π΅Π· _Metadata ΠΏΠ΅Ρ€Π΅Π΄ запуском критичСских скриптов.

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ° поиска Π² MS SQL Server ΠΈ PostgreSQL

Π₯отя Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ Π΅Π΄ΠΈΠ½Π°, синтаксис запросов ΠΊ систСмным ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ различаСтся Π² зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π‘Π£Π‘Π”. Администраторам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ эти различия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эффСктивно ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, индСксы ΠΈ поля. Π’ MS SQL Server основным источником ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ систСмныС прСдставлСния схСмы sys.

Для получСния списка всСх Ρ‚Π°Π±Π»ΠΈΡ† Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ SQL Server ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ запрос ΠΊ sys.tables. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΠ»ΠΈ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ имя поля, Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, Π² ΠΊΠ°ΠΊΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΎΠ½ΠΎ Π»Π΅ΠΆΠΈΡ‚.

Π’ случаС с PostgreSQL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Π² срСдС 1Π‘, структура систСмных Ρ‚Π°Π±Π»ΠΈΡ† иная. Π—Π΄Π΅ΡΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· прСдставлСния information_schema.tables ΠΈΠ»ΠΈ спСцифичных систСмных ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² pg_class. ИмСна Ρ‚Π°Π±Π»ΠΈΡ† Π² PostgreSQL часто ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ рСгистр ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ экранирования ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ.

Π‘Π£Π‘Π” БистСмная Ρ‚Π°Π±Π»ΠΈΡ†Π°/ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запроса поиска
MS SQL Server sys.tables SELECT name FROM sys.tables
PostgreSQL information_schema.tables SELECT table_name FROM information_schema.tables
1Π‘ 7.7 (DBF) Ѐайловая систСма Поиск Ρ„Π°ΠΉΠ»ΠΎΠ².dbf Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅
Oracle user_tables SELECT table_name FROM user_tables

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Oracle ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π‘Π£Π‘Π” ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ остаСтся Ρ‚Π΅ΠΌ ΠΆΠ΅: сначала опрСдСляСм имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ 1Π‘, Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ инструмСнты ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π‘Π£Π‘Π” для Π°Π½Π°Π»ΠΈΠ·Π° Π΅Π΅ структуры.

Анализ структуры Ρ‚Π°Π±Π»ΠΈΡ† ΠΈ поиск ΠΏΠΎΠ»Π΅ΠΉ

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ нашли имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом часто становится поиск ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ поля (ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ). Π’ 1Π‘ ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ Π² SQL Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ тСхничСскими ΠΈ Π½Π΅ всСгда ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹. НапримСр, ΠΏΠΎΠ»Π΅"НаимСнованиС" Π² справочникС ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ _Fld1234 ΠΈΠ»ΠΈ Description.

Для поиска поля Π² MS SQL Server ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСдставлСниС sys.columns. ОбъСдинив Π΅Π³ΠΎ с sys.tables, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ присутствуСт ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π­Ρ‚ΠΎ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΉ инструмСнт ΠΏΡ€ΠΈ рСвСрс-ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³Π΅ нСизвСстной Π±Π°Π·Ρ‹ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ поискС мСста хранСния Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°.

SELECT t.name AS TableName, c.name AS ColumnName

FROM sys.tables t

JOIN sys.columns c ON t.object_id = c.object_id

WHERE c.name LIKE'%Articul%';

Π­Ρ‚ΠΎΡ‚ скрипт ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ всС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, содСрТащиС Π² ΠΈΠΌΠ΅Π½ΠΈ подстроку"Articul". Π’ 1Π‘ 8.x ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ часто Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ _Fld + ID Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π°. Зная ID Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Π° ΠΈΠ· ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ имя ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ, Π½ΠΎ поиск ΠΏΠΎ части ΠΈΠΌΠ΅Π½ΠΈ Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² рСгистрах накоплСния Π΄Π°Π½Π½Ρ‹Π΅ часто разнСсСны ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ срСза остатков ΠΈ срСза ΠΎΠ±ΠΎΡ€ΠΎΡ‚ΠΎΠ². Поля Π² этих Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ спСцифичСскиС прСфиксы, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ рСгистра. Анализ Ρ‚Π°ΠΊΠΈΡ… структур Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ особого внимания ΠΊ полям ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΈ рСсурсов.

Автоматизация поиска Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹

Для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… администраторов ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ€ΡƒΡ‡Π½ΠΎΠ΅ написаниС SQL-запросов ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ. БущСствуСт ряд ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΈ скриптов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ процСсс получСния ΠΈΠΌΠ΅Π½ Ρ‚Π°Π±Π»ΠΈΡ†. Одним ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… инструмСнтов являСтся ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° chdbfl (для Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… Π±Π°Π·) ΠΈΠ»ΠΈ спСциализированныС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° структуры.

Π’ контСкстС SQL сСрвСра ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΈΠ»ΠΈ прСдставлСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· _Metadata ΠΈ систСмных Ρ‚Π°Π±Π»ΠΈΡ† Π‘Π£Π‘Π”. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅: имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° 1Π‘, Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, имя физичСской Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ список ΠΏΠΎΠ»Π΅ΠΉ.

Π’Π°ΠΊΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ сторонниС инструмСнты ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π±Π°Π· 1Π‘, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ 1Π‘:АдминистрированиС сСрвСров ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΈ запросов. Они часто ΠΈΠΌΠ΅ΡŽΡ‚ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для отобраТСния физичСских ΠΈΠΌΠ΅Π½ Ρ‚Π°Π±Π»ΠΈΡ†, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ запроса. Π­Ρ‚ΠΎ позволяСт ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹"Π² бою", Π±Π΅Π· нСобходимости ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΡΠΌΠΎΠΉ доступ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· SQL Π² ΠΎΠ±Ρ…ΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ 1Π‘ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΈ рСгистрации ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ рассинхронизации Π΄Π°Π½Π½Ρ‹Ρ… Π² распрСдСлСнных ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π±Π°Π·Π°Ρ… (Π Π˜Π‘).

Риски прямого измСнСния Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΡΠΌΠ°Ρ модификация Ρ‚Π°Π±Π»ΠΈΡ† SQL ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡŽ ссылочной цСлостности, ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΆΡƒΡ€Π½Π°Π»Π°Ρ… рСгистрации ΠΈ нСвозмоТности провСдСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΈΠ»ΠΈ Π² Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹Ρ… ситуациях ΠΏΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ спСциалиста.

ЧастыС ошибки ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ бСзопасности

Одной ΠΈΠ· самых распространСнных ошибок являСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ† ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Ρ… конфигурациях ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (ID) ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ физичСских Ρ‚Π°Π±Π»ΠΈΡ† (_Reference15 ΠΏΡ€ΠΎΡ‚ΠΈΠ² _Reference28).

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ аспСкт β€” это ΠΏΡ€Π°Π²Π° доступа. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ выполняСтся SQL-запрос, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ систСмных Ρ‚Π°Π±Π»ΠΈΡ† (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, _Metadata). Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… конфигурациях бСзопасности доступ ΠΊ этим Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ выполнСния запроса.

ΠŸΡ€ΠΈ поискС Ρ‚Π°Π±Π»ΠΈΡ† Π² высоконагруТСнных систСмах слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ запросов с ΠΏΠΎΠ»Π½Ρ‹ΠΌ сканированиСм (SELECT *) ΠΊ большим Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌ, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ рСгистров. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1Π‘. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΏΠΎ полям ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ количСство Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Ρ… строк.

πŸ’‘

Никогда Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° ТСстко прописанныС ΠΈΠΌΠ΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ† Π² скриптах. ВсСгда динамичСски ΠΏΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ _Metadata ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ.

НаконСц, ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° 1Π‘ постоянно развиваСтся. Π’ Π½ΠΎΠ²Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ хранСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΠ»ΠΎΠ½ΠΎΡ‡Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡˆΠ°Ρ€Π΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ поиску Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° обновлСниями Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ тСстируйтС свои скрипты Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·Π°Ρ….

МоТно Π»ΠΈ Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ 1Π‘ Π±Π΅Π· доступа ΠΊ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Ρƒ?

Π”Π°, это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Достаточно ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ слуТСбной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ _Metadata нСпосрСдствСнно Π² Π‘Π£Π‘Π”. Π§Π΅Ρ€Π΅Π· SQL-запрос ΠΊ этой Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ физичСскими Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π±Π΅Π· запуска ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° 1Π‘.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΈΠΌΠ΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ† Π² 1Π‘ 8.3 выглядят ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ символов?

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ 8.x ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ для имСнования Ρ‚Π°Π±Π»ΠΈΡ†, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π‘Π£Π‘Π”. ИмСна Π²ΠΈΠ΄Π° _IR000000123 ΠΈΠ»ΠΈ _AccRegRg123 ΡΠ²Π»ΡΡŽΡ‚ΡΡ тСхничСскими ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ запоминания.

Как Π½Π°ΠΉΡ‚ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π² SQL?

НСобходимо Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ запрос ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ _Metadata с Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠΌ ΠΏΠΎ классу ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,"Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚.РСализацияВоваровУслуг"). Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ имя основной Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ Ρ‚Π°Π±Π»ΠΈΡ† Π΅Π³ΠΎ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… частСй.

ΠžΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ΡΡ Π»ΠΈ поиск Ρ‚Π°Π±Π»ΠΈΡ† Π² PostgreSQL ΠΈ MS SQL для 1Π‘?

Π›ΠΎΠ³ΠΈΠΊΠ° поиска Ρ‡Π΅Ρ€Π΅Π· _Metadata Π²Π½ΡƒΡ‚Ρ€ΠΈ 1Π‘ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°. Различия ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ синтаксиса систСмных запросов ΠΊ Π‘Π£Π‘Π” (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, sys.tables Π² SQL Server ΠΏΡ€ΠΎΡ‚ΠΈΠ² pg_class Π² PostgreSQL) ΠΏΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ структуры ΡƒΠΆΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.