Хадгалах SQL процедурыг бий болгох. Хадгалагдсан процедурын төрлүүд. Gnuchka хандалтын эрхийн менежмент

22 анги

WinForms Client/Server үндсэн программ дээр бичих тухай миний мэдлэг маш энгийн бөгөөд үүнд би ирсэн:

Vykoristovuvat процедурыг анхаарч үздэг:

  • Эвхэгддэг роботын ажилтан болсныхоо төлөө. Хэрэв та ажиллахаар шийдсэн бол танд хүснэгтийн курсор эсвэл темп хэрэгтэй болно, тиймээс үүнийг SQL Server дээр ажиллуулах хамгийн сайн аргыг дуудаарай.
  • Та өгөгдөлд хандах хандалтыг хаах хэрэгтэй байж магадгүй. Хэрэв та coristuvachas-ийн хүснэгтэд (дүргийн болон бусад) хандах эрх өгөхгүй бол тэдэнтэй харилцах цорын ганц арга зам бол хамтарсан үйлдвэр юм гэдэгт итгэлтэй байж болно.

Тусгай хүсэлтийн ялалт:

  • CRUD-ийн хувьд, хэрэв та өгөгдөлд хандах гүүр хийх шаардлагагүй бол (үүнийг өөрөөр хий).
  • Хамгийн энгийн онигооны хувьд. хошигнол нь хувийн бус шалгуур нь SP бий болгох - энэ нь үйлчилгээний бүх нугалах юм. Хэрэв та швед нудрах хүсэлт үүсгэж чадвал нүдээ ирээрэй.

Миний нэмэлтүүдийн ихэнх нь, би SP шиг ялсан, тиймээс ad-hoc sql, Би бага, бага vicorist SP, C # шиг кодтой эцсийн уутанд өмхий хэлтэрхий, зөвхөн илүү их хяналт, тест болон сайжруулах. Та тодорхой шалтгааныг мэдэхгүй байгаа тул би хоёр утастай ad-hoc sql хийхийг зөвлөж байна.

Хадгалах журам - хамгаалалтын програмын гэрээ, тэдгээрийг багтаасан, мэдээллийн баазын эсрэг амьдардаг. Процедурын код болон өгөгдлийн сангийн схемийг хөрвүүлэх, код боловсруулахгүйгээр өөрчлөх боломжтой бөгөөд ингэснээр процедурын оролтууд өөрчлөгдөхгүй хэвээр үлдэнэ.

Та програмаасаа асуухад өгөгдлийн загварынхаа талаар тодорхой хэлэх болно.

Өгөгдлийн сандаа арьсны хүснэгтэд зориулсан CRUD хүсэлт гэх мэт хадгалах процедурыг бий болгох нь тийм ч сайн туршлага биш тул энэ нь илүү нягт холбоотой юм. Процедурын шинж чанар нь том ширхэгтэй, бүдүүн ширхэгтэй байдаг.

Хүмүүсийн мэдээллийн баазыг сайжруулах, сурвалжлагчийн интерфейсийг өргөтгөх нь тэдний буруу учраас хүмүүсийн хоорондын гол зөрчил гэж би бодож байна.

Өгөгдөлтэй хүний ​​хувьд би тэднийг түр зуурын хүсэлтийг хүлээн авахаас өмнө өгөгдлийн сангийн арын ажлыг хараагүй тул үр дүнтэй суралцах эсвэл тэдэнд анхаарал тавих нь чухал юм. Би схемийг өөрчлөхөд юу хувь нэмрээ оруулах боломжтойг хэрхэн олж мэдэх вэ? Нэмж дурдахад, би coristovats нь толин тусгал хамгаалалт бүхий мэдээллийн сангийн хүснэгтэд шууд хандах эрх олгох ёстой гэж би бодохгүй байна (мөн би зөвхөн SQL тарилга довтолж чадахгүй байна, гэхдээ бас үндсэн дотоод хяналт, шууд эрх, vimagaє зөвшөөрөхгүй байна. vіd usіh koristuvachіv vikoristovyte зөвхөн procs, хөтөлбөрт хүлээн зөвшөөрөгдсөн, schob zapobіgti mozhlivogo shahraystvo.

Өгөгдлийн бааз нь объект хандалттай бөгөөд объект хандалтат талаас нь харахад сайн харагддаг код нь үндсэн өгөгдлийн үүднээс бүрэн сүйрдэг.

Манай жижиглэнгийн худалдаачид бидэнд сануулж байгаа нь бидний мэдээллийн санд хандах бүх хандалт нь процессоор бий болдог бөгөөд ингэснээр бид өршөөлийн засварыг мэдэгдэхүйц хурдасгаж, өгөгдөлд худал хуурмаг, дараа нь зүгээр л ажил дээрээ процедурыг ажиллуулна. орчин, мөн шинэ код үүсгэж болохгүй, дахин эмхэтгэж, virobnitstvo-д дахин давуу талтай. Бидний бүх үйл явц жолоочийн гарт байсан гэж бид үзэж байгаа тул dzherel-ийн удирдлага нь асуудал биш юм. Хэдийгээр дарс Subversion-д ороогүй ч дарсны dbas нь үе үе харагддаг бөгөөд Source Control-ыг дэмждэггүй.

Хадгалах журам, солиотой, ирэх ... өмхий эмхэтгэсэн, ажлын cob өмнө төлөвлөгөө шидэж, та тэдэнд эрхийг дээдэлж болно.

Хадгалагдаж байгаа процедурын гаралтын кодтой холбоотой асуудлыг би ойлгохгүй байна. Та бага зэрэг сахилга баттай байсан ч тэднийг амархан удирдаж чадна.

Хадгалах процедурын гол цөм болох .sql файлаас үргэлж эхлэх хэрэгтэй. Кодоо бичсэнийхээ дараа його-г keruvannya-д оруулах хувилбаруудтай. Дараагийн удаа, хэрэв та хадгалсан зүйлээ өөрчлөхийг хүсвэл өгөгдлийн баазынхаа доор өөрийн гадаад хяналтын элементийг устгах болно. Хэрэв та үүнийг дагаж мөрдвөл кодтой адил сайн менежменттэй болно.

Би энд Oracle-ийн Том Кайтаас эш татмаар байна... Энэ бол код бичих дүрэм... Хэдийгээр энэ нь бага зэрэг таарахгүй байсан ч би илүү сайн мэднэ гэж бодож байна.

Манай хавсралтад бид асуухад ашиглаж болох кодтой байдаг (мөн заримдаа бидэнд хадгалагдсан процедур хэрэгтэй болно). Tse бидэнд олгодог:

  • амархан otrimat бүх pіd цагийн keruvannya хувилбаруудыг асуу
  • янз бүрийн мэдээллийн сангийн серверүүдэд зориулсан арьс арчилгааны бүх өөрчлөлтийг robiti
  • Манай кодоор дамжуулан ижил кодын давталтыг багтаасан болно

Хандалтын хяналт нь мэдээллийн санд биш харин дунд бөмбөгөнд хэрэгждэг тул бидэнд хадгалсан процедур хэрэггүй. Бүх дэлхий бол тусгай хүсэлт, журам хоорондын дунд зам юм.

Төвийн санд хадгалагдсан боловч (боломжтой) шилжүүлэхэд чухал ач холбогдолтой, мэргэшсэн зүйлүүдийг олоход хялбар, кодоороо өмхий үнэртэх боловч өмхий үнэрийг илүү сайн мэддэг байх боломжтой хоёр процедурын аргументуудыг өөрчлөх шаардлагатай. кодонд.

Хадгалсан процедур нь илүү үр дүнтэй гэж маргаж, өшөө авах хэрэггүй. текст илгээсэн

Динамик асуулгатай харьцуулах процедурын талаарх Google-ийн зөвлөгөө танд ямар ч тохиолдолд зарим аргументуудыг харуулах бөгөөд та өөрөө шийдвэрээ хүлээн зөвшөөрсөн нь дээр.

Deyakі rechі, yaki-ийн талаар бодох хэрэгтэй: Процедурууд хэнд хэрэгтэй вэ, тэд юу хэмнэж байна вэ?

Таны эрчим хүчний хэрэгцээтэй хоол хүнс чухал гэдэг нь ойлгомжтой, гэхдээ дунд нь хамгийн онцгой ундаа агуулсан, бөөнөөр нь чиглэсэн, аюулгүй байдаг талаар бодох нь илүү чухал юм. Параметржуулалтаасаа болгоомжилж, SQL тарилга гэх мэт ердийн зөрчилдөөнийг дагаж мөрдөөрэй.

Хадгалах журам нь гайхамшиг, учир нь тэдгээрийг дахин эмхэтгэхгүйгээр өөрчлөх боломжтой. Аль болох тэднийг ялахыг хичээх болно.

Би coristuvach-ийн танилцуулга дээр үндэслэн динамикаар үүсгэгддэг ундааны түр зуурын хүн юм.

Процесс нь бусад шалтгааны улмаас хийгддэг бөгөөд нэмэлт профайл эсвэл процессын хэсгүүдийн хувьд процессыг сайжруулахад хялбар байдаг. Энэ зэрэглэлд та SQL сервер рүү юу илгээгдэж байгааг мэдэхийн тулд програмаа эхлүүлсэн тухай хэнд ч хэлэх шаардлагагүй.

Хэрэв та түр зуур асуумаар байвал параметржүүлсэн гэсэн бодлоо өөрчил

SQL эсвэл SPROC параметржуулалт ... гүйцэтгэлийн хувьд тийм ч чухал биш ... та тэдгээрийн аль нэгийг нь оновчтой болгох хүсэлт гаргаж болно.

Миний хувьд SPROC-ийн бусад давуу тал нь би SQL-ийн эрхийг удирдах олон эрхийг хааж чадна, зүгээр л sprocs-д нэвтрэх эрхийг минь өгөөрэй... Ингэснээр та Parametized SQL-г хожиж, нэвтэрч, холболтын эгнээнд холбох боломжтой болно. , магадгүй илүү (жишээ нь тэд хандах боломжтой хүснэгтүүдийн аль нэгийг сонгохын тулд ямар ч төрлийн операторын бичлэг).

Би өмнөх шигээ параметржүүлсэн SQL-г илүүд үздэг байсан тул...

Бүтээмжийн аргумент sproc є spirnim - 3 дээд RDBM нь уух болон өдөр тутмын цагийн төлөвлөгөөг буцааж ялдаг. Ёогоо баримтжуулсан... 1995 он гэж юу вэ?

Гэсэн хэдий ч, таны хөтөлбөрт SQL-ийг хэрэгжүүлэх нь бас муухай дизайн юм - кодын засвар үйлчилгээ, магадгүй баячуудын хувьд тийм ч сайн ойлголт биш юм.

Үүний нэгэн адил, хөтөлбөр нь нэмэлт ORM (kіlkoh-аас хол ногоон талбайн нэмэлтүүд!), Tse vіdminny vibrіr, таны ангийн oskіlki загвар keruє таны DB загварыг зүгээр л нэг цаг гэж эхнээс нь эхэлж болно.

ORM бүтэц байхгүй тул бид хайбрид pidhide-г хакердаж SQL нөөцийн XML файлыг үүсгэж, шаардлагатай SQL-ийн мөрийг асуусан (үгүй үнэрийг нөөцийн дэд бүтцээр хадгалдаг). SQL нь кодоос өөр жижиг засваруудыг шаарддагтай адил SQL-ийн эгнээнд их хэмжээний засвар хийх шаардлагатай бөгөөд бидний дахин бодож байгаа.

Энэхүү эрлийз pidkhid нь жижиглэн худалдаалагчдыг удирдахад хялбар болгодог (магадгүй би жижиг бол миний багийн хэлтэрхийг цэвэрлэж, хүсэлтийн төлөвлөгөөг уншиж болно), мөгөөрсөн хоолой нь зүгээр л SVN-ийн дахин баталгаажуулалт юм. Нэмж хэлэхэд, би танаас RDBM-г солихыг хүсэх болно - зүгээр л SQL нөөцийн файлыг солих болно (ORM хэрэгсэл шиг тийм ч хялбар биш, гэхдээ энэ нь хуучин систем эсвэл өгөгдлийн сантай ажилладаг бөгөөд үүнийг дэмждэггүй)

Миний бодлоор хадгалагдсан хүсэлт ба / эсвэл журмын 90% нь цаг товлох үүрэг хүлээхгүй (хүлээн зөвшөөрсөн, гараар).

Мэдээллийн хандалтыг автоматаар үүсгэж болно. Та эмхэтгэх үед статик эсвэл бүтээх үед динамик байдлаар процедур үүсгэх эсэхээ сонгох боломжтой, эсвэл хүснэгтэд багана (объект эрх мэдэл) нэмэхийг хүсвэл зөвхөн нэг файлыг өөрчлөх хэрэгтэй.

Би бүх өгөгдлийг хадгалах болно хандалтпрограмын код, энэ тохиолдолд өгөгдөлд хандах хандалтыг SQL-хүсэлтээс шууд авах боломжтой. Нөгөө талаас логик удирдлага, Би өдөөгч, хадгалах журам, үндсэн функцууд болон бусад зүйлсийг хараад мэдээллийн санд байрлуулсан. Мэдээллийн сангийн огноо, өгөгдөл үүсгэхэд хүндэтгэлтэй ханддагийн жишээ бол манай үйлчлүүлэгч овог нэр, овог нэртэй байж болно. Одоо koristuvach интерфэйсийн хувьд DisplayName хэрэгтэй байна, учир нь энэ нь ямар нэг энгийн логикоос харагдаж байна. Энэ үеийн хувьд би хадгалагдсан процедурыг үүсгэсэн бөгөөд дараа нь мөрийг шинэчлэх бүрт гохоор ажиллуулна (өөрөөр бол бусад өгөгдөл).

Үүнээс илүү ойлгомжгүй зүйл байгаа юм шиг санагдаж байна, өгөгдөлд хандах нь өгөгдлийн сантай адилхан, өгөгдөлд хандахад үнэ цэнэтэй бүх зүйл тэнд байдаг. Энэ нь зүгээр л буруу, гэхдээ би санаагаа орилох гэх мэт олон төсөл хэрэгжүүлж байна. Бүхэл бүтэн орон нутгийн үзэгдэл байж магадгүй.

Энэ мөчлөгийн урд хэсэгт хүснэгтээс өгөгдөл гаргаж авах, бүтцийг нь өөрчлөх, тэдгээрийн дотор нуугдаж буй өгөгдлийн сан, объектуудыг үүсгэх, өөрчлөх, харах боломжтой болохыг дэлхий нийтээр харав. Энэ нийтлэлд бид серверийн DBMS-ийн ердийн объектуудын талаар илүү дэлгэрэнгүй ярих болно: мэдэгдэл, триггер, хадгалагдсан процедур.

Манай сэтгүүлийн №3'2000-д нийтлэгдсэн энэхүү мөчлөгийн эхний нийтлэлд бид одоогийн серверийн DBMS-ийн ихэнх нь хадгалагдсан мэдэгдэл, триггер, процедурыг дэмждэг болохыг дурдсан. Мөн гадаад төрхийг bugatma DBMS дэмждэг, жишээ нь Access, dBase, Clipper.

Хадгалагдсан триггер болон процедурыг SQL хэлний процедурын өргөтгөл болох програмчлалын хэлээр бичих ёстойг зааж өгнө үү. Өргөтгөсөн мэдэгдлүүд нь алгоритмуудыг тайлбарлах боломжийг танд олгоно, жишээ нь: do...хэрэв, хэрэв...тэгвэл...өөрөөр бол SQL хэлэнд ашигладаг. vіdmіnu MTIE SQL, scho pіdporyadkovuєtsya стандарт Yogo protsedurnі rozshirennya nіyak үгүй биш standartizovanі Од, би өөрсдийгөө algoritmіchnih konstruktsіy, айргаа чимээгүй тулд өгөгдлийн сангийн vikoristovuyut rіznі sintaksichnі konstruktsії realіzatsії rіznі tsієї stattі цааш тохиролцсон rіznih vihodit нь vіdmіnnostey-д sintaksisі rozshiren SQL мэдээллийн сан.

Хадгалсан харагдах байдал, триггер, процедурыг хэрхэн яаж эргүүлэх боломжтойг харуулахын тулд бид Microsoft SQL Server 7.0 болон DBMS-ийн хүргэх багцын өмнө багтсан NorthWind мэдээллийн санг сонгосон.

Юуны өмнө DBMS-д ялалт байгуулсан триггер, процедурыг хэрэгжүүлэгч, хадгалсан хүмүүст хүндэтгэл үзүүлэх, эдгээр статистикийг зааж өгсөн гэж үзэж болно. Нэмж дурдахад, серверийн объектуудыг бий болгохын тулд мэдээллийн сангийн администраторыг өгсөн мэт дараах эхийг зөвшөөрдөг.

Зарим ODBC драйверууд үйлчлүүлэгчийн нэмэлтээс хадгалагдсан процедурын циклийг дэмждэггүй нь бас чухал боловч DBMS өөрөө үүнийг дэмждэг. Хадгалсан процедурыг аль болох эрт, өдөөгч хүчин зүйлээс арилгах боломжтой.

Баримтуудыг харцгаая, дараа нь хадгалагдсан процедурын талаар ярилцаж, өдөөгч хүчин зүйлсийг харж дуусгая.

Гадаад төрх

Оруулсан - tse виртуал хүснэгт, хүснэгтийн тоо аль нэг баганын тоог дуугарч. Бодит өгөгдөл байхгүй, зөвхөн SELECT төрлийн SQL асуулга байдаг бөгөөд эхний дүрслэл рүү буцахдаа ижил өгөгдөл, аль хүснэгтээс авах шаардлагатайг харуулдаг. Z tsієї цэг zoru yavlennya - tse асуух, scho zberіgaєtsya.

Ихэнх випадкивууд мэдээллийн аюулгүй байдлын төлөө ялалт байгуулдаг. Жишээ нь, coristuvachiv ангиллын диконууд гарч ирэхээс өмнө хандаж болно, гэхдээ хүснэгтэд биш, тэд өгөгдөл үүсгэж болно; Нэмж дурдахад, SQL-хүсэлт нь USER параметрийг (нэр, аль дор бүртгэгдсэн koristuvach) тохируулж болох бөгөөд энэ тохиолдолд огноо руу буцаж ирэхэд байгаа өгөгдөл нь koristuvach нэрийн дор унах болно.

Илэрхийллийн үндсэн шинж чанаруудыг доор харуулав.

  • yavlennya ширээ шиг биеэ авч явах;
  • өгөгдлийн өшөөг авахгүй байх нь илэрсэн;
  • Илгээлтүүд нь ижил хүснэгтээс илүү их мэдээлэл авах боломжтой.

Гадаад төрхийг бий болгохын тулд бид CREATE VIEW SQL-ийн саналыг өөрчилж, ALTER VIEW саналаар өөрчилж, DROP VIEW саналаар устгаж болно.

Strining өгөгдлийн сангийн харагдац үүсгэх боломжийг олгодог CREATE VIEW мэдэгдлийг харцгаая.

ҮЗҮҮЛЭХ саналыг бий болгох

Мэдэгдэл үүсгэх саналын синтакс нь хэд хэдэн нэмэлт түлхүүр үг бүхий SQL SELECT саналыг таамаглаж байна. Доорх нь энгийн синтакс юм:

ҮЗҮҮЛЭХ ҮЗҮҮЛЭХ_НЭРИЙГ сонгох_мэдэгдэл болгон үүсгэнэ үү

View_name аргумент нь харагдацын нэрийг зааж өгдөг. Microsoft SQL Server-д таарсан түлхүүр үг нь CREATE VIEW саналын эх бичвэрийг syscomments хүснэгтэд хавсаргах боломжийг олгоно.

AS түлхүүр үг нь мэдүүлэхээс өмнө буцаах үед аль SELECT асуулга хэрэгжиж болохыг заана. Хүсэлт нь ORDER BY, COMPUTE эсвэл COMPUTE BY, INTO гэсэн түлхүүр үгсийг орлуулах боломжгүй бөгөөд цагийн хүснэгтэд хамаарах боломжгүйг анхаарна уу.

Өмнө нь үүсгэсэн мэдэгдлийг өөрчлөхийн тулд доромжилсон хэсэгт тайлбарласны дагуу ALTER VIEW саналыг дагаж мөрдөөрэй.

DROP VIEW саналыг

vydalannya vyavlennya з да nih нь Tsya санал vikoristovuєtsya. Мэдээллийн сангаас хүснэгтүүдийг харахад түүнд хамаарах бүх мэдэгдлийг харж буй хүмүүст хүндэтгэл үзүүлээрэй. Vikoristovuyuchi tsyu санал, бид im'ya vyavlennya, scho үзсэн гэм буруутай. Үзсэний дараа шинийн талаархи бүх мэдээллийг системийн хүснэгтээс харж болно.

Бас нэг зүйлийг хэлэхэд, хэрэв та үүнийг харах шаардлагатай бол уг үзэгдлийг бий болгосны дараа түүний үндэслэсэн хүснэгтүүдийн бүтэц өөрчлөгдсөн гэж та үүнийг буруутгаж болно. Энэ харагдацаар та Vistava-г харж, CREATE VIEW нэмэлт саналд зориулж дахин үүсгэж болно.

Бүтээл ба vikoristannya илрэл

CREATE VIEW санал нь дуучдад өгөх гэж байгаа мэт өгөгдлийг өөрчлөх боломжийг олгодог мэдэгдлийг бий болгоход хэрэглэгддэг. Илгээмжийг одоогийн мэдээллийн санд үүсгэсэн бөгөөд объект болгон цуглуулдаг.

Гадаад төрхийг бий болгох хамгийн сайн арга бол SELECT асуулга үүсгэх бөгөөд үүнийг буруу тайлбарласны дараа CREATE VIEW саналын дутуу хэсгийг нэмэх явдал юм. NorthWind мэдээллийн санд (Жагсаалт 1) Бүтээгдэхүүний категорийн мэдэгдлийн гаралтын текстийг харцгаая.

Эхний эгнээ, тод үсгээр бичсэн алсын хараа нь өгөгдөл сонгохдоо роботыг ялах SELECT мэдэгдлийг үүсгэх SQL саналыг танилцуулж байна. Энэ өгөгдөлд хэрэглэх СОНГОХ заалт нь CATEGORIES хүснэгтээс CategoryName талбар болон PRODUCTS хүснэгтээс ProductName, QuantityPerUnit, UnitsInStock, Continued талбаруудыг хоёр хүснэгтээс сонгоно. Энэ өгөгдлийн дараа хоёр хүснэгтийг CategoryID талбараар холбож, зөвхөн нөөцөд байгаа бүтээгдэхүүнүүд (WHERE түлхүүр үгийн дараах хуваах шалгуур) өгөгдлийн багцад багтана. Эхний мэдүүлэг рүү буцах үр дүнг Зураг дээр үзүүлэв. нэг .

Одоо ижил төстэй бүс нутгийн бүх нутаг дэвсгэрийг харуулсан мэт мэдэгдэл хийцгээе. Танилцуулгын зорилго нь халдлагаас гарах явдал юм (Жагсаалт 2).

SELECT санал нь үр дүнгээ хүссэнээрээ эргүүлдэг гэсэн асуудалд төөрөлдсөний дараа бид CREATE VIEW хэллэгийг нэмж, үүсгэсэн EASTTERR нэрийг өгнө (Жагсаалт 3).

Гараар илгээсэн текст үүсгэхийн оронд та DBMS агуулахад орохын тулд харааны хэрэгслийг ашиглаж болно. Зураг дээр. 2-р зурагт Microsoft SQL серверийн өмнө ирдэг Enterprise Manager-ийн агуулахын хэсэг болох View Designer нэмэлт хэрэгслийн ард ижил программыг хэрхэн үүсгэж болохыг харуулж байна.

View Designer-ийн дээд хэсэг нь хүснэгтүүдийг хэрхэн холбож, өгөгдөлд аль талбарыг харуулахыг зааж өгөх боломжийг олгодог. Доор та хуурамч нэр бүхий хүснэгт, талбар, тэдгээрийн утгыг орлуулах, харуулах аргыг оруулж болно. Дали мэдэгдлийн эцсийн текст болон yogo vikonannya үр дүнг тавьсан.

Эхлээд би эргэн тойрноо товчхон харцгаая, бид тэдгээрийн талаар бага зэрэг ярих болно, тэдгээрийн талаар нэмэлт мэдээллийг хэрхэн авах талаар ярилцъя. Microsoft SQL Server 7.0 дээр бид хадгалсан дараах системийн процедурыг өөрчлөх боломжтой.

  • Өргөдлийн талаарх мэдээллийг авахын тулд та sp_help системийн процедурыг ашиглаж болно. Жишээ нь, sp_help EastTerr нь үйл явдлын талаар нөхцөл байдлыг эргүүлэх;
  • оролтын текстийг засварлахын тулд та хадгалагдсан sp_helptext процедурыг өөрчлөх боломжтой;
  • Дүрслэл хадгалах хүснэгтүүдийн жагсаалтыг мэдэхийн тулд та sp_depends системийн процедурыг ашиглаж болно;
  • мэдэгдлийн нэрийг өөрчлөхийн тулд та хадгалагдсан sp_rename системийн процедурыг өөрчилж болно.

Бид хэнийг хуваасан, өгөгдлийг устгах нотлох баримтыг хэрхэн олж авах, эдгээр болон бусад шалгуурыг хэрхэн хангах талаар авч үзсэн. Өгзөгний үлдсэн хэсэг рүү эргэцгээе. NorthWind мэдээллийн санд хэд хэдэн бүс нутаг байдаг бөгөөд сонгосон бүс нутгийн нутаг дэвсгэрийн жагсаалтыг сонгохын тулд бидэнд хэд хэдэн өөр мэдэгдэл хэрэгтэй болно. Даалгаврыг уучилж болно, yakbee RegionID утгыг параметр болгон дамжуулж болно. Нэмэлт журамд ажиллах боломжтой, юуг анхаарах вэ, энэ талаар бид довтолгооны хэлтэст ярих болно.

Хадгалах журам

Хадгалагдсан процедур нь SQL-ийн саналуудын багцыг эмхэтгэх, мэдээллийн санд хадгалах объектыг нэрлэх, нэг кодын фрагмент болгон холбох явдал юм. Хадгалах журам нь параметрүүдийг хүлээн авч, эргүүлэх боломжтой. Хэрэв та хадгалагдсан процедурыг үүсгэвэл сервер үүнийг эмхэтгэж, тараагдсан кэшэд байрлуулж, дараа нь эмхэтгэлийн кодыг decals-ээр хааж болно. Хэрэв програм нь хадгалагдсан процедурыг хожвол шаардлагатай параметрүүдийг дамжуулж, сервер дахин эмхэтгэлгүйгээр процедурыг ялна.

Хадгалах журам нь програмын бүтээмжийг нэмэгдүүлэх боломжийг олгодог. Эхний ээлжинд porіvnjano іz асар их SQL-хүсэлт, үйлчлүүлэгчийн нэмэлтээс албадан өмхий, өмхий нь дуусахаас өмнө бэлтгэхэд нэг цаг хүрэхгүй хугацаа шаардагддаг, өмхий үнэрийг аль хэдийн эмхэтгэж, хадгалдаг. Нөгөөтэйгүүр, урсгалын тоо заримдаа бага, заримдаа SQL асуулгын дамжуулалт бага байдаг бол өгөгдлийн тоо нэгэн зэрэг дамждаг. Цагаан будаа. Үйлчлүүлэгчийн хавсралтаар авсан долоо хоног тутмын 3 жишээ журам.

Хадгалах журам автоматаар дахин эмхэтгэсэн байна, объекттой юм шиг, тэдэнд өмхий үнэр цутгаж, zrobleno be-yaki өөрчлөлт; іnakshe kazhuchi, өмхий завжди бодит. Дээр дурдсанчлан, хадгалсан журмууд нь өөр өөр нэмэлтүүд нь ижил процедурыг ялах, оролтын өгөгдлийн янз бүрийн багцыг zastosovuyuchi боломжийг олгодог параметрүүдийг авч болно.

Мэдээллийн бүрэн бүтэн байдал, бизнесийн дүрмийг хэрэгжүүлэхэд дэмжлэг үзүүлэхийн тулд хадгаламжийн горимыг шаарддаг. Заримдаа dodatkova уян хатан байдал, хэлтэрхийнүүд байдаг тул бизнесийн дүрэм өөрчлөгдөхөд үйлчлүүлэгчийн нэмэлтийг өөрчлөхгүйгээр процедурын текстийг өөрчилж болно.

Процедурыг үүсгэх, өөрчлөх, өөрчлөхийн тулд тусгай SQL саналуудыг ашиглана уу - CREATE PROCEDURE, ALTER PROCEDURE, DROP PROCEDURE. Бид тэднийг довтолгооны хэсэгт хардаг.

Санал ЖУРАМ БҮРДҮҮЛЭХ

Хадгалах процедурыг үүсгэхийн тулд CREATE PROCEDURE заалтыг сонгосон. Доромжилсон задлан шинжлэлийн синтакс байж болно:

PROC proc_name CREATE [(@parameter data_type) [= default] ] [...] AS sql_statements

proc_name аргумент нь процедурын нэрийг тохируулдаг бөгөөд хэрэв энэ нь thread мэдээллийн санд өвөрмөц байж чадвал үүнийг хадгалах боломжтой. @parameter аргумент нь процедурын параметрийг тодорхойлдог. CREATE PROCEDURE заалт нь нэг буюу хэд хэдэн параметртэй байж болно. Хэдийгээр урамшууллын параметрийн утга байхгүй ч долоо хоног бүрийн журмын дагуу сурвалжлагч (эсвэл үйлчлүүлэгчийн нэмэлт) шилжүүлэг байж болно. Microsoft SQL Server 7.0-д авсан процедурын параметрүүдийн тоо нь 1024-ийг хүчингүй болгоход хариуцлага хүлээхгүй; umovchannyam өмхий үнэр mozhut ээж znachennya NULL нь.

Өгөгдөлд хандах ийм түгээмэл механизм нь хадгалагдсан процедурын параметрүүдийн тоонд нэмэлт хязгаарлалт тавьж болох нь чухал юм. Жишээлбэл, Oracle 8-д зориулсан BDE драйвер нь зөвхөн процедуруудтай ажиллахад зориулагдсан бөгөөд параметрийн тоо нь 10 өөрчлөгддөггүй.

Өгөгдлийн_төрлийн аргумент нь параметрийн өгөгдлийн төрлийг тодорхойлдог. Өгөгдмөл түлхүүр үг нь урамшууллын ард утгыг тохируулахад ашиглагдаж болно - энэ нь тогтмол эсвэл NULL байж болно. Түгжээнд утгыг зааж өгсөн тохиолдолд параметрийн утгагүйгээр процедурыг орхиж болно. Үүний нэгэн адил процедур нь LIKE түлхүүр үг бүхий параметрийг ашигладаг бөгөөд сурталчилгааны утгыг бүлгийн тэмдэгтүүдээр (%, _, ба [^]) сольж болно.

OUTPUT түлхүүр үг нь аль параметрийг эргүүлэхийг заана.

AS түлхүүр үг нь энэ серверт хамаарах SQL-ийн процедурын өргөтгөл дээр SQL-ийн саналууд болон саналуудын тоо байгаа эсэхээс үл хамааран процедурыг хэрхэн дүрслэн харуулахыг заадаг.

Нэмэлт CREATE PROCEDURE заалтад зориулан үүсгэсэн процедурыг урсгал мэдээллийн сангаас хадгалах болно. Microsoft SQL Server дээр процедурын нэрийг sysobjects системийн хүснэгтэд, гаралтын текстийг syscomments хүснэгтэд байрлуулна.

Өмнө нь хийсэн зүйлийг өөрчлөхийн тулд дараагийн хэсэгт товч тайлбарлах ALTER PROCEDURE саналд ялахын тулд дараах журмыг сонгосон.

Санал УНАХ ЖУРАМ

Мэдээллийн сангаас авсан алсын журмын хувьд Tsya санал vikoristovuetsya. DROP PROCEDURE санал нь нэг аргументыг авдаг бөгөөд энэ нь харагдах процедурын нэр юм.

Хадгалсан процедурыг устгахдаа тэдгээрийн талаарх мэдээллийг системийн хүснэгтээс sysobjects болон syscomments устгадаг.

Хадгалагдсан сонгосон процедурыг бий болгох

Үйл явдалд томилогдсон салбар дээр бид хэрэг болохуйц зүйлсийг хүндэтгэсэн тул NorthWind мэдээллийн баазын дөрвөн бүсээс аль нэгийг сонгохдоо RegionID утгыг орлуулах параметрийг танилцуулга руу шилжүүлж болно. Нутаг дэвсгэрийн жагсаалтыг бүс болгон хувиргадаг үүнийг дахин харцгаая.

Нутаг дэвсгэрээс сонгон нутаг дэвсгэр.TerritoryDescription, Region.RegionTarif.

Өөр бүс нутгийг сонгохын тулд бид үлдсэн эгнээний WHERE заалтын санааг өөрчлөх хэрэгтэй. Мөн бид өөрчлөгдсөн (үүнийг її RegID гэж нэрлэдэг) тул элсэлтийн бусад хэсгийг өөрчлөхгүйгээр дөрвөн бүсээс аль нэгийг сонгох боломжтой.

NorthWind мэдээллийн сан нь 1-ээс 4 хүртэлх тоотой хэд хэдэн бүстэй. Энэ нь RegID-г бүхэлд нь өөрчлөх боломжтой гэсэн үг юм. Хийх процедурын кодыг доор харуулав.

ЖУРАМ ҮЗҮҮЛЭХ ShowRegion @RegID int Нутаг дэвсгэр.TerritoryDescription, Region.RegionDescription FROM Territories.Territories.TerritoryDescription, Region.RegionDescription.

Текстийг бүхэлд нь СОНГОХ боломжгүй (налуу үсгээр харвал) үгүйсгэж, шинээр үүсгэсэн процедурын нэр дээр зөвхөн CREATE PROCEDURE саналыг нэмсэн хүмүүст хүндэтгэл үзүүлээрэй (эхний эгнээнд) параметр нь зарласан (нөгөө эгнээнд) ба саналуудын кобыг харуулсан AS түлхүүр үг үнэхээр ялна.

RegID = 2 уншилтын хувьд үүсгэсэн SQL Server Query Analyzer процедурын үр дүн Зураг дээр. 3 .

Мэдээжийн хэрэг, бид хадгалагдаж байгаа процедурыг зөвхөн илрэлийн өргөтгөсөн хувилбаруудыг хэрэгжүүлэхэд төдийгүй "оюуны" SELECT хүсэлтийг хадгалах боломжтой. Хадгалах журам нь ердийн олон ажлыг автоматжуулах боломжийг олгодог механизмуудыг өгдөг.

Microsoft SQL Server 7.0-ийн тусламжтайгаар бид систем хэмнэх горимуудыг өөрчилж, хадгалагдсан хамгийн чухал процедуруудтай ажиллах боломжтой.

  • sp_stored_procedures - хадгалах процедурын жагсаалтыг харуулах;
  • sp_helptext - хадгалах процедурын текстийг харуулах;
  • sp_depends - хадгалах процедурын хуучирсан байдлын талаарх мэдээллийг харуулах;
  • sp_procoption - хадгалагдсан эсвэл тохируулсан процедурын сонголтыг тохируулах;
  • sp_recompile - дараагийн долоо хоногт процедурыг дахин эмхэтгэх;
  • sp_rename – процедурын нэрийг өөрчлөх.

Хадгалсан системийн процедурууд

Бид Microsoft SQL Server-ийн тухай ярьж байгаа боловч түүний хадгалсан, хэрэгжүүлсэн олон тооны системийн процедурыг хэлж байна. Хадгалсан системийн процедурын нэр нь SP_ эсвэл XP_-ээс эхэлж, үндсэн мэдээллийн санд хадгалагдана. Илүү олон удаа, бид аль хэдийн аврагдах нь ихэвчлэн ялалт системийн журмын үйлсийг тодорхойлсон байна.

хүндэтгэл илчлэх, гох нь coristuvachev өгөгдлийг эргүүлэх буруугүй гэдгийг.

CREATE TRIGGER санал нь хоёр тусгай хүснэгттэй байж болно. Жишээлбэл, устгасан болон оруулсан хүснэгтүүд нь хүснэгттэй ижил бүтэцтэй, триггер оноосон ба өөрчлөгдсөн бичлэгийн хуучин болон шинэ утгыг устгаж болно. Жишээлбэл, бид алсын бичлэгийг хайхын тулд дараах SQL саналыг мушгин гуйвуулж болно:

SELECT * FROM устгагдсан

Ширээн дээр Зураг 3-т бүх боломжит өгөгдлийн өөрчлөлтийн устгасан болон оруулсан хүснэгтүүдийг харуулав.

Илэрхий триггерийг өөрчлөхийн тулд ALTER TRIGGER гэсэн саналыг дагана уу. Довтолгооны дивизионд нэг шинэ зүйлийн талаар ярилцъя.

Кобын хувьд бид хүснэгтэд хоёр шинэ талбар нэмэх шаардлагатай бөгөөд тэдгээрийн тоог багасгах болно. Тухайлбал їх UpdatedBy (бичлэгийг зогсоосон менежерийн нэр) ба UpdatedWhen (бичлэг өөрчлөгдсөн цаг). KeepTrack нэртэй триггер үүсгэцгээе. йогийн тэнхлэгийн код:

ҮЗҮҮЛЭГЧ ҮҮСГЭХ KeepTrack ON Хэрэглэгчид INSERT, ШИНЭЧЛЭХ Хэрэглэгчийн SET Customers.UpdatedBy = USER_NAME(), Customers.UpdatedWhen = GETDATE() FROM оруулсан, Хэрэглэгчид ХААНА оруулсан.CustomerID = Customers.CustomerID

Триггерийн гаралтын текстээс харахад вин нь Customers хүснэгт дээрх INSERT болон UPDATE арьсны үйлдлүүдийн дараа шалгагдсан байна. Энэ триггер нь Customers.UpdatedBy талбараас менежерийн нэрийг (өгөгдлийн сан) хадгалах ба Customers.UpdatedWhen талбараас огноо, цагийг өөрчилнө. Өгөгдлийн тоог цагийн хүснэгтээс хассан, танилцуулсан.

Бачимогийн нэгэн адил энэ гох нь өөрчлөлтийг дагаж, хүснэгтэд шинэ бичлэг оруулах боломжийг олгодог.

Үүнээс өмнө триггерүүдийн талаар товчхон харж дуусгах талаар бид буруутай тул триггерүүдийн талаарх мэдээллийг мэдэж болно. Sysobjects хүснэгтэд триггер болон төрлүүдийн талаарх мэдээллийг, syscomments хүснэгтэд тэдгээрийн гаралтын текстийг хадгалдаг.

Висновок

Энэ хэсэгт бид хэд хэдэн төрлийн мэдээллийн сангийн объектуудыг авч үзсэн - процедур, илрүүлэлт, хадгалагдсан триггер. Бид урьдчилгааг таньсан:

  • Гадаад төрх - tse виртуал хүснэгт, нэг тооны хүснэгтэд баганын дэд хэсэг болгон үүсгэсэн дуу чимээ. Харагдах байдал үүсгэхийн тулд CREATE VIEW саналыг, өөрчлөхийн тулд ALTER VIEW саналыг, устгахын тулд DROP VIEW саналыг ашиглана.
  • Хадгалагдсан процедур нь SQL-ийн саналуудын багцыг эмхэтгэх, мэдээллийн санд хадгалах объектыг нэрлэх, нэг кодын фрагмент болгон холбох явдал юм. Хадгалсан процедурыг үүсгэхийн тулд CREATE PROCEDURE гэсэн саналыг тохируулж, өөрчлөх бол - ALTER PROCEDURE, устгах бол - DOP PROCEDURE.
  • Триггер нь SQL-ийн нэмэлт INSERT, DELETE эсвэл UPDATE саналд зориулж нэг хүснэгтэд байгаа өгөгдөл нэмэгдэх, харагдах эсвэл өөрчлөгдсөн тохиолдолд автоматаар дуудагддаг тул хадгалагддаг тусгай төрлийн процедур юм. Триггерийг CREATE TRIGGER заалтын тусламжтайгаар үүсгэсэн. Триггерийг өөрчлөхийн тулд ALTER TRIGGER саналыг сонгож, DROP TRIGGER саналыг хасна.

ComputerPress 12"2000

Процедуртаа мөр оруулах - SET NOCOUNT ON:

Арьсанд ээлтэй DML вирусын тусламжтайгаар SQL сервер нь бүртгэгдсэн бичлэгийн тоогоор юу хийхийг бидэнд шууд хэлж өгдөг. Tsya іnformatsija нь бидний хувьд кодын өртөг байж болох ч үүний дараа энэ нь үнэхээр төгс байх болно. SET NOCOUNT ON гэж бичснээр бид энэ функцийг идэвхжүүлдэг. Бүтээмжийг мэдэгдэхүйц нэмэгдүүлэх боломжтой вирус эсвэл мөчлөгийн тоог арилгах процедурын хувьд замын хөдөлгөөний хэмжээ мэдэгдэхүйц буурах болно.

Transact SQL

Схемийн нэрийг объектын нэртэй тааруулна уу:

За, энд би zrazumilo гэж бодож байна. Үйл ажиллагаа серверийн де shukati ob'єkti өгсөн бөгөөд тэр нь zamіst, schob rummagelessly таны zasіkah дамжуулан rummaging, та уух хэрэгтэй хаана мэдэх болно, юу авах. Хадгалсан олон тооны суурь, хүснэгт, процедурын тусламжтайгаар энэ нь бидний цаг хугацаа, мэдрэлийг хэмнэж чадна.

Transact SQL

SELECT * FROM dbo.MyTable -- Тэнхлэг маш сайн - Replace SELECT * FROM MyTable -- Тэгээд муу байна -- EXEC процедурыг дуудах dbo.MyProc -- Дахин уучлаарай -- EXEC MyProc-г солих -- Муу!

Процедурынхаа нэрэнд "sp_" угтварыг бүү ашигла, үүнээс зайлсхий.

Үнэн хэрэгтээ манай процедур нь үндсэн мэдээллийн сандаа хамгийн түрүүнд SQL Server sp_ дээр суурилдаг. Баруун талд өгөгдсөн угтварыг хадгалсан серверийн тусгай дотоод журамд зориулж сонгосон. Иогийн өгөгдлийн сангаас тантай адил нэртэй процедурыг олох тул йогийн туршилтыг нэмэлт витрат руу шилжүүлж, буруу үр дүн гаргаж болно.

IF EXISTS (СОНГОХ *) оронд IF EXISTS (СОНГОХ 1) гэж өөрчил:

Дараагийн хүснэгтэд байгаа бичлэгийн харагдах байдлыг өөрчлөхийн тулд бид ОРШИГДВОЛ viraz-ыг хожно. Данийн цонх үнэн болж хувирдаг тул "1" чухал биш нэг утгыг ч гэсэн дотоод цонхноос бүх багана эсвэл хүснэгтийг эргүүлнэ. Vіdomі danі, зарчмын хувьд vikoristovuyutsya биш. Ийм байдлаар өгөгдөл дамжуулах цагт замын хөдөлгөөнийг stisnennya тулд доор үзүүлсэн шиг "1" цохих нь илүү логик юм.

SQL процедурыг хадгалах - өөр өөр объектуудыг харахаас хамгаалж болох програмын модулийг хакердах. Өөрөөр хэлбэл, SQL-заавартай объект. Хадгалсан процедурыг програмын үйлчлүүлэгчдэд сайн бүтээмжид хүрэхийн тулд ашиглаж болно. Нэмж дурдахад, ийм объектуудыг ихэвчлэн бусад хувилбараас эсвэл өөр төрлийн хуваарилалтыг урамшуулахын тулд дууддаг.

Нэвтрэх

Бусад процедуртай (жишээлбэл, MS SQL) төстэй гэдгийг хэн ч мэдэх нь чухал. Магадгүй, чиний зөв. Тэд ижил төстэй параметртэй байж болно, тэд ижил төстэй утгыг харж болно. Тэдгээрийн дээгүүр өмхий үнэр нь нэг цагийн турш наалддаг. Жишээлбэл, өмхий үнэр нь DDL болон DML мэдээллийн сан, түүнчлэн үндсэн функцуудтай (кодын нэр - UDF) холбоотой байдаг.

Үнэн хэрэгтээ, анхаарал хандуулж байгаа SQL процедурууд нь ийм процессуудын дунд хэсгийг олж хардаг тул өргөн хүрээний давуу талтай байдаг. Bezpeka, програмчлалын хувьсах чадвар, бүтээмж - бүгд өгөгдлийн сангаас ажилладаг цөмд илүү их мэдээлэл өгдөг. Процедурын алдартай оргил үе нь 2005-2010 онуудад, хэрэв програм нь "Microsoft" нэрээр SQL Server Management Studio нэрээр гарсан бол унасан. Мэдээллийн сангийн тусламжтайгаар энэ нь илүү хялбар, илүү практик, илүү тохиромжтой болсон. Дэлхий дээрх рокоос програмистуудын дунд ийм алдартай болж байна. Өнөөдөр энэ нь користувачивын хувьд мэдээллийн сантай "холбох" шиг, "Exel" шиг болсон шиг үнэхээр сайн програм юм.

Хэрэв та процедур дээр дарвал энэ нь vtruchannya coristuvacha гэсэн zayvih protsessіvгүйгээр сервер өөрөө шууд боловсруулагддаг. Хэрэв тийм бол та алс хол, vikonannya, өөрчлөлт шиг байх zdiyasnyuvati болно. Энэ бүхний хувьд танд объектын боловсруулалтын хамгийн төвөгтэй хэсгүүдийг дээрэмдэхийг өөрөө заадаг DDL-оператор хэрэгтэй. Түүнээс гадна, энэ нь маш хурдан юм шиг санагддаг, сервер нь үнэндээ navantazhuetsya биш юм. Энэ төрлийн хурд, бүтээмж нь серверээс сервер рүү их хэмжээний мэдээллийг хялбархан дамжуулах боломжийг олгодог.

Энэхүү технологийг хэрэгжүүлэхийн тулд мэдээлэл бүхий роботууд нь mov програмчлал дээр суурилдаг. Тэдний өмнө та жишээ нь Oracle шиг PL / SQL, InterBase болон Firebird систем дэх PSQL, мөн сонгодог "Microsoft" Transact-SQL-ийг харж болно. Гайхалтай мэдээллийн сан дахь алгоритмуудыг эзэмших боломжийг олгодог хадгалагдсан процедурыг үүсгэж, дуусгахад бүх өмхий үнэрийг хүлээн зөвшөөрдөг. Ийм мэдээллийг удирдаж буй хүмүүс бүх объектыг гуравдагч этгээдийн системд зөвшөөрөлгүй нэвтрэхээс хамгаалж, бусад өгөгдлийг үүсгэх, өөрчлөх, үзэх боломжтой байх шаардлагатай.

Бүтээмж

Qi мэдээллийн сангийн объектуудыг өөр өөр замаар програмчилж болно. Tse нь coristuvachas-д ялгуусан аргын төрлийг сонгох боломжийг олгодог бөгөөд энэ нь хамгийн тохиромжтой байх бөгөөд энэ нь тухайн цагийн хүчийг хэмнэх болно. Нэмж дурдахад, процедурыг өөрөө боловсруулж байгаа бөгөөд энэ нь сервер болон серверийн хооронд цагийн гайхалтай ханшийг нуух боломжийг олгодог. Мөн модулийг хүссэн үедээ дахин програмчилж, өөрчлөх боломжтой. Ялангуяа varto нь хурдыг илэрхийлдэг бөгөөд үүний тусламжтайгаар хадгалсан SQL процедурыг эхлүүлэх шаардлагатай байдаг: энэ процесс нь үүнтэй төстэй бусад хүмүүст илүү чухал бөгөөд ингэснээр үүнийг хялбар бөгөөд бүх нийтээр хийх боломжтой болно.

Безпека

Энэ төрлийн мэдээллийн боловсруулалтыг ижил төстэй процессуудад ашигладаг бөгөөд энэ нь аюулгүй байдлыг сайжруулдаг. журамд бусдын хандалт дахин унтрааж болно дансны хувьд Tse bezpechuetsya. Tse администратор бие даан тэдэнтэй үйл ажиллагаа явуулах perehoplennya мэдээлэл, мэдээллийн санд зөвшөөрөлгүй нэвтрэх айж байх нь зөвшөөрөхгүй.

Өгөгдөл дамжуулах

Авсан SQL процедур ба үйлчлүүлэгчийн нэмэлт хоёрын хоорондох холболт нь өөр өөр параметр, утгууд дээр тулгуурладаг. Мэдээллийг (голчлон эрэлт хэрэгцээнд) боловсруулж, SQL-д зориулж боловсруулдаг, хадгалсан процедурт өгөгдөл дамжуулахыг бүү зөвшөөр. Хадгалж буй процедур нь ажлаа дуусгасан тул нэмэлт хэсэгт өгөгдлийн багцууд (алдаа, би мэднэ) байгаа бөгөөд ингэснээр та йог, ялалтын аргуудыг ашиглаж болно. SQL процедурыг хэрхэн хадгалах талаар олж мэдье, тиймээс би жишээлбэл:

Нэмэлт параметрийн өгөгдлийг Гаралтын төрөлд дамжуулах;

Операторын тусламж авахын тулд өгөгдөл дамжуулах;

Сонголт хийхэд операторын туслалцаа үзүүлэх хүндэтгэлийн хүч.

Тэгээд одоо бүх үйл явцыг дундуур нь харж байгаа юм шиг харцгаая.

1. SQL дээр EXEC Хадгалсан Процедурыг үүсгэх

Та MS SQL (Managment Studio) дээр процедур үүсгэж болно. Процедурыг үүсгэсний дараа үүнийг оператор үүсгэсэн програмчлалын vuzol үндсэн өгөгдлөөс дахин зохион байгуулах болно. vykonannya SQL журмын хувьд scho zberіgayutsya, vykoristovuyut EXEC-үйл явц, KAKI m_sti ыm'ya объект нь өөрөө.

Процедурыг нэгтгэх үед эхлээд нэрийг зарлаж, дараа нь танд өгсөн нэг буюу хэд хэдэн параметрийг сонгоно. Параметрүүд нь заавал байх албагүй байж болно. Процедурын үндсэн параметрүүдийг бичих тул шаардлагатай үйлдлүүдийг хийх шаардлагатай.

Баруун талд, биеийг орон нутгийн хэмжээнд өөрчлөх боломжтой, nіy-д roztashovani, мөн tsі нь процедурын өмнөх огнооны дагуу орон нутгийн хэмжээнд өөрчлөгдөж болно. Өөрөөр хэлбэл, тэдгээр нь зөвхөн Microsoft SQL Server процедурын үндсэн хэсгийн дунд харагдах болно. Хадгаламжийн журам заримдаа орон нутгийн vvazhayutsya байна.

Тиймээс процедурыг бий болгохын тулд процедурын нэр болон процедурын үндсэн хэсэгт дор хаяж нэг параметр байх шаардлагатай. Ийм цаг үеийн хамгийн чухал сонголт бол ангилагч дээр схемийн нэрийн журмыг бий болгох явдал гэдгийг анхаарч үзээрэй.

Процедурын үндсэн хэсэг нь хүснэгт үүсгэх, хүснэгтэд нэг буюу хэд хэдэн мөр оруулах, өгөгдлийн сангийн төрөл, шинж чанар гэх мэт зарим төрлийн жишээ байж болно. Процедурын протео бие нь шинэ нэг дэх одоогийн үйл ажиллагааны ялалтуудын хооронд байна. Чухал хязгаарлалтын актуудыг доор дурдсан болно.

Бие махбодь аврагдаж байгаа бусад процедурыг хийхэд буруугүй;

Бие махбодь нь тухайн объектын талаар өршөөлийг бий болгож чадна;

Бие махбодь өдөр тутмын өдөөгчийг бий болгоход буруугүй.

2. Процедурын биед өөрчлөлт оруулах

Та тэдгээрийг процедурын биед орон нутгийн байдлаар өөрчилж болох бөгөөд үнэр нь зөвхөн процедурын биеийн дунд хэсэгт л өөрчлөгдөнө. Сайн туршлага бол хэмнэлттэй, бие махбодид өөрчлөгддөг журмыг бий болгох явдал юм. Гэхдээ тухайн объектын биеийн аль ч хэсэгт өөрчлөлтийг суулгах боломжтой.

Зарим тохиолдолд та хэд хэдэн өөрчлөлтийг нэг эгнээнд суулгаж, өөрчлөлтийн параметрийн арьсыг усаар бэхжүүлсэн гэж хэлж болно. Мөн @ угтварыг өөрчлөх боломжтой гэдгээ хүндэтгэнэ үү. Процедурын төрлийг хүссэн газраа өөрчлөх боломжтой. Жишээ нь, @NAME1-г өөрчлөх нь процедурын төгсгөлд ойртуулж болно. Дуугүй өөрчлөлтийн утгыг өгөхийн тулд тусгай мэдээллийн багц цуглуулдаг. Нөхцөл байдлын үндсэн дээр нэг мөрөнд нэгээс олон өөрчлөлт гарсан бол ийм нөхцөлд нэгээс цөөн тооны тусгай өгөгдөл байдаг.

Ихэнх тохиолдолд асуулт хариултууд: "Процедурын гарчиг дахь нэг мэдэгдлийн жижиг утгыг та хэрхэн таних вэ?" За. Цикаваг тэжээх нь илүү хялбар байх болно, гэхдээ та тэгж бодохгүй байна. Зөвлөмж: "Select Var = value" гэх мэт ийм хосуудын тусламж. Та магадлалыг даван туулж, комагаар тарааж чадна.

Хамгийн manipulative өгзөг нь хүмүүс энгийн журам бий болгох харуулж байна, анхаарал халамж авч байгаа юу, мөн vikonannya її. Энэ процедурын хувьд та процесс, түүнийг юу гэж нэрлэдэг, утга нь шинэтэй ойрхон (гэхдээ үүнийг өөрчлөх хэрэггүй) зэрэг параметрүүдийг авч болно. Өмхий үнэр гарах тусам биеийн голд процессууд эхэлдэг. Жишээлбэл, тухайн бүс нутгийн байршлыг захиалагчаас хэрхэн хүлээж авах, юу дуудах, тэдгээрийн талаархи өгөгдлийг эргүүлэх журам гаргахын тулд тухайн бүс нутгийн байршил руу хэдэн зохиогчийг илгээдэг. Уг процедур нь мэдээллийн баазын зохиогчдын хүснэгтийг, жишээлбэл, пабуудын жагсаалтыг зохиогчдын жагсаалтын төгсгөл хүртэл харгалзан үзнэ. Өгөгдлийн санг харахын тулд, жишээлбэл, Google нь SQL2005-ийн талаас SQL скриптийг авдаг.

Эхний тохиолдолд процедур нь англиар @State болон @City гэсэн хоёр параметрийг авна. Өгөгдлийн төрөл нь нэмэлтэд томилогдсон төрөлтэй тохирч байна. Процедурын гарчгийг @TotalAuthors (бүх зохиогчдын) дотооддоо өөрчилж болох бөгөөд тэдгээрийн тоо хэмжээг харуулах зорилгоор өөрчлөх болно. Dalі z'yavlyaєtsya razdіl vyboru zaputu, yakii бүх pіdrakhovuє. Nareshti, podrahovane znachennya vіdobrazhaєєtsya vіknі vyvodu найздаа операторын туслалцаа үзүүлэх.

SQL Viconati ашиглан процедурыг хэрхэн хадгалах вэ

Процедурыг дагаж мөрдөх хоёр арга бий. Процедурын нэрний дараа хуваагдлын жагсаалтыг харуулсан тул параметрүүдийг дамжуулж эхний замыг харуулав. Энэ нь зөвшөөрөгдөх боломжтой, бид хоёр утгатай байж болно (урд өгзөг шиг). @State болон @City журмын нэмэлт өөрчлөлтийн параметрүүдэд утгыг авна. Параметрүүдийг шилжүүлэх бүх арга зам нь чухал дарааллаар хэнд байна. Энэ аргыг ordinal argument passing гэж нэрлэдэг. Нөгөө талаар, параметрүүдийг хоёрдмол утгагүй хүлээн зөвшөөрдөг бөгөөд ийм байдлаар дараалал нь чухал биш юм. Үүнийг хийх өөр нэг арга бол нэрлэсэн аргументуудыг дамжуулах явдал юм.

Процедурыг стандарт болгон өөрчилж болно. Тиймээс энэ нь урд талын өгзөг шиг явдаг, гэхдээ зөвхөн параметрүүдийг энд харуулав. Тиймээс эхлээд @City параметрийг авч, цоожны утгуудаас @State-г авна. Түгжээний ард байгаа параметр нь зүгээр юм шиг сонсогдоно. Хадгалсан SQL процедурыг энгийн параметр болгон дамжуулдаг. Энэ тохиолдолд UT параметр нь SA түгжээний утгыг дарж байгааг анхаарна уу. Нөгөө vicoon нь @ City параметрийн нэгээс олон аргументын утгатай бөгөөд @ State параметр нь CA түлхүүрийн утгыг авдаг. Хөтөлбөрийн шинэчлэлтүүд баяртай байх болно, ингэснээр товчлолын өөрчлөлтүүд параметрийн жагсаалтын төгсгөлд шинэчлэгдэх болно. Өөрөөр хэлбэл, бид үүнийг хийж чадахгүй, тэр ч байтугай та илүү сайн, эвхэгддэг аргументуудыг нэрлэх дадлага хийхдээ буруутай.

4. SQL серверийн процедурыг хадгалах: Эргүүлэх арга замууд

Хадгалагдсан барьцааны журмын дагуу өгөгдлийг удирдах гурван чухал арга байдаг. Өмхий үнэрийг дараах байдлаар нөхөн сэргээнэ.

Хийж буй процедурын утгыг эргүүлэх;

Хадгалагдаж буй процедурын параметрийг хасах;

Хадгалсан процедуруудын аль нэгийг сонгоно уу.

4.1 SQL процедурыг хадгалах утгыг өөрчлөх

Энэ аргын хувьд процедур нь орон нутгийн өөрчлөлтийн утгыг өгч, түүнийг эргүүлнэ. Процедурыг цаг алдалгүй эргүүлж болно. Довтолж буй өгзөг дээр тэд олон тооны зохиолчдыг эргүүлж байгаа мэт процедурыг бий болгосон. Хэрэв та энэ процедурыг өмнөхтэй харьцуулбал нөгөөгийнх нь утгыг буцаах гэсэн үгээр сольсон гэж бодож болно.

Одоо яаж процедурыг дагаж мөрдөж, утгыг нь оруулах, хэрхэн эргүүлэх талаар бодож үзье. Vikonannya журам vmagaє vstanovlennya zminnoї тэр найз, сарлагийн үйл явцын дараа явуулж болно. Та Select операторыг, жишээ нь Select @RetValue болон OutputValue-г орлуулж болно гэдгийг анхаарна уу.

4.2 Хадгалсан SQL процедурын параметрүүдийг устгах

vіdpovіd утга нь бид болон урд өгзөг нь bachiled нь нэг zminnoy эргүүлэх нь vikoristane байж болно. Гаралтын параметрийн хувилбар нь нөгөө талын өөрчлөлтийн утгыг аль нэгийг нь засах боломжийг процедурт олгодог. Процедурыг үүсгэх үед гаралтын параметрийг "Output" гэсэн ижил түлхүүр үгээр тодорхойлно. Хэрэв ажлын параметр нь гаралтын параметр бол процедурын объект нь түүний утгыг тохируулах үүрэгтэй. Хадгалах SQL процедурыг бага зэрэг ашиглаж болно, өөр өөр тохиолдолд дэд багийн мэдээллийн хамт ашигладаг.

Манай програм @ TotalAuthors болон @ TotalNoContract гэсэн хоёр албан ёсны нэртэй байх болно. Өмхий үнэрийг параметрийн жагсаалтаар зааж өгсөн болно. Өөрчлөлтийн тоог процедурын биеийн дунд хэсэгт өгнө. Хэрэв бид параметрүүдийг ялах юм бол захиалагч процедурын гол хэсэгт оруулсан утгыг сонгох боломжтой.

Нэмж дурдахад өмнөх хувилбарт MS SQL Server процедурыг гаралтын параметрт хадгалж байгаа мэт утгыг нэмэгдүүлэхийн тулд хоёр өөрчлөлт хийсэн. Дараа нь процедурыг CA параметрийн хэвийн утгыг тохируулах замаар зоддог. Дараагийн параметрүүд нь адилхан бөгөөд дараа нь дуугүй өөрчлөлтүүдийг дарааллаар нь дамжуулдаг. Өөрчлөгдсөн өдрүүдийн өнгөрч буй цаг нь түлхүүр үг гэдгийг энд бас өгч байгааг анзаараарай. Процедур амжилттай болсны дараа сүүлийн параметрүүдийн нэмэлт тусламж авахын тулд тэдний ач холбогдлыг цаашид нэгтгэхэд харуулав.

4.3 Хадгалах SQL процедурын аль нэгийг сонгоно уу

Энэ техникийг өгөгдлийн хүснэгтийн утгуудын багцыг (RecordSet) авсан бүх процедур руу эргүүлэхэд ашигладаг. Энэ аппликешнд @AuthID параметр бүхий хадгалагдаж байгаа SQL процедур нь шүүлтүүрийн замаар "Зохиогчид" хүснэгтийг тэжээж, нэмэлт @AuthId параметрийн дараа бичлэгүүдийг эргүүлнэ. Select хэллэг нь эргүүлж болох зүйлийг дарж, сонгох процедурыг дууддаг. Процедур амжилтгүй болсны дараа AuthId-г буцааж дамжуулна. Ийм журам энд үргэлж зөвхөн нэг бичлэгийг эргүүлдэг, эс тэгвээс энэ нь зайлшгүй шаардлагатай. Але, авч байгаа процедур нь өдөр бүр нэгээс илүү бичлэгийг эргүүлэхийг зөвшөөрдөггүй. Өөрчлөлтийн тооцооллын оролцоотойгоор өөр өөр параметр бүхий зарим өгөгдлийн эргэлтийн жишээг ашиглах нь ихэвчлэн боломжтой байдаг бөгөөд хэд хэдэн багийн утгыг өгөх арга байдаг.

Төгсгөлд нь

Хадгалж буй процедур нь ноцтой програм хангамжийн модулийг дуусгах бөгөөд үүнийг эргүүлж эсвэл дамжуулж, мөн үйлчлүүлэгчийн нэмэлт өөрчлөлтөд шаардлагатай өөрчлөлтүүдийг суулгадаг. Хадгалагдсан Oskіlki журам, сервер дээр өөрөө vikonuєtsya, сервер болон үйлчлүүлэгчийн нэмэлт (тэдгээр хасагдах) хооронд агуу үүрэг бүхий өгөгдөл солилцох устгаж болно. Энэ нь танд SQL сервер рүү шилжих боломжийг олгодог бөгөөд энэ нь захирагчдын гарт орох нь ойлгомжтой. Урьдчилан таамаглаж болох нэг зүйл бол чухал мэдээллийн санг бий болгоход оролцдог хүмүүсийн хариуцдаг T SQL процедур юм. Түүнчлэн, маш олон тооны нюансууд байдаг бөгөөд тэдгээр нь хадгалагдсан процедурыг гүйцэтгэхэд өөр байж болох бөгөөд энэ нь програмчлалын чиглэлээр, тэр дундаа мэргэжлийн чиглэлээр ажиллахаар төлөвлөж буй хүмүүст илүү их шаардлагатай байдаг.

Хэрэв би SQL Server дээрх мэдэгдлийг ялсан гэм буруутай бол дараах процедурыг хадгалах ёстой юу?

Би танд динамик ундаа үүсгэхийг зөвшөөрье, бид параметрүүдийг хэрхэн сайжруулах вэ?

Тэдгээрийн аль нь хамгийн тод харагдаж, аль нь хамгийн сайн, аль нь хамгийн бага вэ?

Хадгалж буй процедурыг хараарай, тэд санах ойг байнга хэмнэж байна уу?

Мэдэгдэл нь виртуал хүснэгтийг, процедур нь материалын хүснэгтийг үүсгэдэг гэж юу гэсэн үг вэ?

Эелдэг байгаарай, өмхий үнэр гэх мэт олон зүйлийн талаар надад мэдэгдээрэй.

"Яагаад журам, хадгаламж, татварын хооронд ялгаа байдаг вэ?" вэбээс цуглуулах шийдэл.

Ө виртуалширээ. Мэдээлэл нь нэг хүснэгтээс олдсон тул та илгээсэн хүснэгтийн тоо хүртэл ирж, өгөгдөл илгээх өргөдлийг ялах боломжтой.

Сонгосон функцийн параметрүүдийг сонгох процедурыг хадгалсан бөгөөд ингэснээр өгөгдөл оруулах эсвэл бусад утгыг эргүүлэх эсвэл өгөгдлийн багц шинэчлэгдэнэ.

Мэдэгдлүүд болон хадгалагдаж байгаа процедуруудыг үүсгэсэн - эдгээрийн талаар Майкрософтоос өшөө авахын тулд тэдгээрийг ялсан эсэх, яагаад.

Надад хоёр ширээ байна гэж бодъё:

tbl_user Stovptsi: .user_id, .user_name, .user_pw

tbl_profile Stowpci: .profile_id, .user_id .profile_description

Тиймээс, би эдгээр хүснэгтүүдийг ИЛҮҮ АВАХ гэж оролдож байгаа тул ... үүний оронд CLEAR peice sql дээр ажиллахын тулд би харагдахыг ашиглах болно, жишээлбэл:

CREATE vw_user_profile AS харах A.user_id, B.profile_description FROM tbl_user A зүүн нэгдэх tbl_profile B дээр A.user_id = b.user_id GO

Тиймээс, ирээдүйд би користувачийн id-д зориулж profile_description хүсэлт гаргахыг хүсч байна ... миний дээрэмдэхэд шаардлагатай бүх зүйл,

user_id = @ID ХААНА vw_user_profile-аас profile_description-ийг СОНГОХ

Энэ кодыг хадгалсан процедурт тохируулж болно, жишээлбэл:

Процедурыг үүсгэх dbo.getDesc @ID int AS эхлэл vw_user_profile-аас profile_description-ыг СОНГОХ user_id = @ID END END GO

Үүний тулд би утасдаж болно

Dbo.getDesc 25

мөн би koristuvach 25 де 25 - таны параметрийн ID-ийн тайлбарыг устгасан.

BAGATO илүү байгаа нь ойлгомжтой, гэхдээ гол санаа нь бага байна.

Ар талд нь доромжлол нь өөр өөр яриа гэдгийг ойлгох хэрэгтэй. Процедурын хэмнэлт нь INSERT-UPDATE-DELETE мэдэгдлүүдийн хувьд илүү ялалт байгуулдаг. Эдгээр мэдүүлэг нь СОНГОХ мэдэгдлийн үндэслэлтэй. мөн та ялсан дургүйцлийн буруутай.

Виста дээр та өгөгдлийг өөрчлөх боломжгүй.

Харна уу: Энэ бол өөр өөр бодит мэдээллийн сангийн хүснэгтүүдийн нэг буюу хэд хэдэн мөр, баганаас бүрдэх виртуал хүснэгт юм. Tse загвар rowk_v болон stovpts_v k_lkoh хүснэгт. Та энд ямар ч параметр дамжуулах боломжгүй.

Хадгалах журам: SQL мэдэгдлийн багцыг урьдчилан ашиглах ба үүний тулд та оролтын өгөгдөл гэх мэт параметрүүдийг засах, гаралтын өгөгдлийг устгах боломжтой.

Хадгалсан процедурт харагдах байдлыг харуулах боломжтой, харин хадгалсан процедурыг Views-д харуулах боломжгүй...!

Хэрэв энгийн SQL хангалтгүй байвал shovischa процедур ялна. Хадгалах журам, хадгалагдаж буй бусад процедурын мөчлөг, мөчлөгийг өөрчлөх хэрэгтэй. Tse mova програмчлал биш, mova zapitіv.

    Харагдах байдал нь хөдөлгөөнгүй байдаг. Тэдгээрийг энгийн зохион байгуулалттай шинэ хүснэгтүүд мэт төсөөлөөд үз дээ, тэдгээрийн доторх өгөгдөл нь дур зоргоороо бүтээгдэж байгаа бөгөөд таны бүх зүйлийг бий болгосон. Ямар ч SQL хүснэгтийн нэгэн адил та WHERE , GROUP BY болон ORDER BY -ээр ангилж, шүүж болно.

    Та ажил хийдэг гэдгээ хойш нь тавиарай.

    Мэдээллийн үндсэн дээр тавих Tse. Уучлаарай, зүгээр л асуулга ажиллуулаад үр дүнг шүүнэ үү. Гэсэн хэдий ч Oracle шиг өгөгдлийн сан нь үндсэн өгөгдлийн төрлийг өөрчлөх үед автоматаар шинэчлэгддэг тул үндсэн хүснэгт дээрх шиг "материалжсан" мэдэгдлүүдийг үүсгэх боломжийг олгодог.

    Мэдэгдэлийг материалжуулах нь мэдэгдлийн баганад (ялангуяа өгөгдлийн сангийн хаана ч байдаггүй тооцоолсон баганууд дээр) индекс үүсгэх боломжийг олгодог.

    Би таны юу хэлж байгааг ойлгохгүй байна.

Гол ялгаа нь хэрэв та мэдүүлэг өгөхийг хүсч байгаа бол уг тэмдэглэгээг таны хүсэлтэд оруулсан болно. Уг процедур нь үр дүнг өгч чадна, гэхдээ энэ нь эмхэтгэсэн бөгөөд маш хурдан юм. Хоёр дахь сонголт бол мэдэгдлийг индексжүүлэх явдал юм.

SQL View нь SQL SELECT асуулгад суурилсан виртуал хүснэгт юм. Өргөдлийг нэг буюу хэд хэдэн холбогдох өгөгдлийн сангийн хүснэгт эсвэл бусад мэдэгдлийн дагуу илгээнэ. Мэдээллийн сангийн энэхүү mittєvy тэмдэг нь авсан процедурын нэгэн адил гүйцэтгэлийн нэг төлөвлөгөөнд нэгтгэгдсэн Transact-SQL хэллэгүүдийн бүлэг юм.

Перегляд бол өгөгдлийн сангийн хүснэгтэд хадгалагдсан өгөгдлийн энгийн үзүүлбэр бөгөөд яг л хэсэг бүлэг операторуудын хадгалдаг процедуртай адил бөгөөд үүнийг зөрчиж болно.

Бүртгэгдсэн илүү, oscillki vodobrazhae хүснэгтээс өгөгдөл, хэрхэн асуух талаар, зүгээр л sql-заавар цуглуулах журам.

Энэ өгүүллийг буцаах: Хадгалагдаж байгаа процедуруудыг хянана уу. Чиний шивнэж байгаа хүмүүс

@Патрикийн хэлэх нь зөв, өөр хоолоо харцгаая, санах ойд өөртөө View-г үүсгээд, дараагийн төрөлд Joins, Data, задарсан ч, нэгтгэсэн ч байж болно. өлсөж харагдлаа.

Тусламж авахын тулд #tmpTable1 гэх мэт Temp Hash Table1 орлуулалт эсвэл @tmpTable1 санах ойд бүх ажлаа хадгалах процедурыг хадгална уу. Залежно v_d таны хэлэхийг хүссэн зүйлээ.

Хийж буй процедур нь функцтэй төстэй боловч шууд нэрээр дуудагддаг. zamіst funktsіy, yakі үнэндээ хүсэлтийн дунд vikoristovuyutsya.

Мэдээжийн хэрэг, ихэнх тохиолдолд хүснэгтүүд санах ойд байдаг, учир нь та маш их мөнгө авдаггүй.

Махеш зөв биш, хэрвээ тэр дарс уухыг зөвшөөрвөл та алба гувчуураас алба гувчуурыг өөрчилж чадахгүй. Аав аа, Патрикийг хараач

CREATE vw_user_profile AS харах A.user_id, B.profile_description FROM tbl_user A зүүн нэгдэх tbl_profile B дээр A.user_id = b.user_id

Би өгөгдлийг шинэчилж чадна ... өгзөг шиг, би үүнийг цих эсэхийг шийдэж чадна ...

vw_user_profile-г шинэчлэх profile_description="Менежер"-ийг хэрэглэгчийн_id=4 гэж тохируулна уу

tbl_profile-ийг шинэчилнэ үү. user_id=4 байх profile_description="Менежер"-ийг тохируулна уу

Хүснэгтийн бүх талбарууд байхгүй тул та үүнийг мэдэгдэлд оруулах боломжгүй бөгөөд PROFILE_ID нь үндсэн түлхүүр бөгөөд NULL байж болохгүй гэж би бодож байна. Гэхдээ та мөн vistavu дээр INSERT оруулж болно...

Би үндсэн ширээнд зориулж програм үүсгэсэн, використ ...

SELECT * харагдац шиг View Junk үүсгэ

Хог хаягд (код, нэр) утгыг оруулна уу ("глин", "Глин Робертс"), ("Мэри", "Мариан Робертс")

ID>4 хаягаас УСТГАХ

І INSERT, і DELETE нэг цэг дээр ажилласан

Мэдээжийн хэрэг, талбарууд нь нэгтгэсэн эсэх, эсвэл хамгаалагдсан эсэх, эсвэл мэдэгдэл мөн эсэхийг өөрчлөх боломжгүй, хэрэв тэдгээр нь зүгээр л шууд мэдэгдэл бол тэдгээрийг өөрчилж болно.

Хэрэв та нэгээс олон хүснэгт харсан бол оруулах, харах боломжгүй, харин нэгээс олон хүснэгт харсан бол дуугарна.

Нэмэлт сэтгэгдлүүдийг зааж өгөхөөс гадна би Үзэлтийн талаар зарим нэг хүндэтгэлийг нэмж хэлмээр байна.

  1. Бэлэг нь prikhovuvannya нугалах нь ялалт байж болно. Төсөл дээр 5 хүн ажилладаг, тэдгээрийн зөвхөн нэг нь өгөгдлийн сантай баг, жишээлбэл эвхэгддэг холбоо гэх мэт хувилбараа харуул. Ийм нөхцөлд дарс бүтээж болох бөгөөд энэ нь багийн бусад гишүүдэд амархан хүсэлт гаргах боломжтой бөгөөд өмхий хэлтэрхий нь нэг хүснэгтийг асууж болно.
  2. Аюулгүй байдлыг хялбархан хэрэгжүүлэх боломжтой Views. Бид гэж хэлье spіvrobіtnikхүснэгтүүд Цалин , SSN дугаар. Иргэд хардаггүй користувачуудыг хайж байгаад буруугүй. Ийм байдлаар бид хүснэгтийн баганыг сонгох, зөвшөөрөл өгөхгүй гэх мэт мэдэгдлийг үүсгэж болно. би , тийм ээгэх мэт зөрчилдөөнгүй тайлбар хийхгүйгээр (жишээлбэл, цалингийн тухай гэх мэт, биднийг өмнө нь хэрхэн таамаглаж байсан талаар). Одоо бид хүснэгтэд шууд хүсэлт илгээхийг харж болно ажилтантэгээд зүгээр л сэдвээс уншихын тулд үүнийг хадгалаарай. Ийм байдлаар бид тусламжийн Views-ийн аюулгүй байдлыг ухамсарлаж чадна.