Създаване на SQL процедурата, която да бъде запазена. Видове процедури, които се записват. Gnuchka управление на правата за достъп

22 епизода

Моите познания за писане в основната програма WinForms Client/Server са прости, до които стигнах:

Vykoristovuvat процедури, за които се грижи:

  • За това, че сте сгъваем роботизиран работник. Ако решите да работите, на практика ще ви е необходим курсор на таблица или темп, така че извикайте най-добрия начин да го стартирате в SQL Server.
  • Може да се наложи да блокирате достъпа до данни. Ако не предоставите достъп до таблиците на coristuvachas (както роли, така и други), можете да се убедите, че единственият начин да взаимодействате с тях е чрез съвместното предприятие, което се създава.

Победа за специални искания:

  • За CRUD, ако не е необходимо да свързвате достъпа до данни (направете го по друг начин).
  • За най-простите шеги. Създаването на SP за безлични критерии за шега - това е всичко, което сгъване в услугата. Ако можете да създадете шведска молба за боцкане, намигнете.

За повечето от допълненията си печеля като SP, така че ad-hoc sql, искам да знам, че имам все по-малко використичен SP, парченца смрад в крайната торба с код като C #, само повече контрол, тест и подобрявам. Препоръчвам двупроводен ad-hoc sql, защото не знаете конкретната причина.

Процедури за записване - договор за програма за сигурност, която ги капсулира, живеят срещу бази данни. Кодът за процедурите и самата схема на базата данни могат да се променят без компилиране, разработване на кода, така че входовете на процедурата да останат непроменени.

Когато попитате вашата програма, вие ясно ще си кажете за вашия модел на данни.

Е, също така не е добра практика просто да създавате процедури за записване, като CRUD заявки за таблици на кожата във вашата база данни, така че е по-тясно свързано. Естеството на процедурата се дължи на обемисти, едрозърнести.

Мисля, че това е основният конфликт между хората, тъй като те са виновни за подобряване на базата данни на хората, както и за разширяване на интерфейса на кореспондента.

Като човек с данни, не погледнах работата зад базата данни, докато не преминат през adhoc заявки, така че е важно за тях ефективно да учат или да се грижат. Как мога да разбера с какво мога да допринеса за промяната на схемите? Освен това не смятам, че на coristovats трябва да се дава директен достъп до таблици на база данни с огледална сигурност (и не мога да атакувам само SQL инжекции, но и факта, че основният вътрешен контрол, който не позволява директни права и вимагае vіd usіh koristuvachіv vikoristovyte само procs, признати за програмата, schob zapobіgti mozhlivogo shahraystvo.

Базите данни са обектно-ориентирани и кодът, който изглежда добре от обектно-ориентирана гледна точка, може да бъде напълно разрушен от гледна точка на базовите данни.

Нашите търговци на дребно ни напомнят, за целта, че целият ни достъп до бази данни се създава чрез proc, така че значително ще ускорим коригирането на извиненията, така че да лъжем в данни, а след това просто да стартираме proc в работния среда, а не създаване на нов код и прекомпилиране и повторно предимство във virobnitstvo. Вярваме, че всички наши процеси са били в ръцете на водача, така че контролът на джерела изобщо не е проблем. Въпреки че wine не е в Subversion, винената dbas се вижда периодично и няма поддръжка за Source Control.

Процедури за запазване, безумно, идващи... смърди компилирани, хвърляне на плана пред кочана на работата и можете да цените правата върху тях.

Не разбирам проблема с изходния код на процедурата, която се записва. Можете лесно да ги контролирате, дори и да имате малко дисциплина.

Винаги започвайте от .sql файла, който е ядрото на процедурата за запис. Публикувайте yogo в keruvannya с версии, след като сте написали кода. Следващия път, ако искате да промените вашата процедура, това, което е запазено, отнемате вашия собствен външен контролен елемент, под вашата база данни. Ако следвате това, ще имате същото добро управление като вашия код.

Тук бих искал да цитирам Том Кайт от Oracle... Това е правилото за писане на код... дори и да е малко несъответствие, но знам по-добре, мисля.

Нашето допълнение има топка код, който можем да използваме, за да попитаме (а понякога се нуждаем от процедура, която да бъде запазена). Tse ни позволява:

  • лесно otrimat всички попитайте pіd час keruvannya версии
  • robiti всички промени за грижа за кожата за различни сървъри за бази данни
  • включва повторение на същия код чрез нашия код

Контролът на достъпа е реализиран в средната топка, а не в базата данни, така че нямаме нужда от процедури, които се запазват. Целият свят е средният път между специалните искания и процедурите, за които се грижи.

Променете аргументите и за двете процедури, които се запазват така, както са в централното хранилище, но е (потенциално) важно да бъдат прехвърлени, а специалностите са по-лесни за намиране, смърдят фрагменти с вашия код, но смърдите също могат да бъдат по-известни в кодът.

Аргумент, че процедурите, които са запазени, са по-ефективни, не отмъщавайте повече. изпратен текст

Съветът на Google за процедурата, която се предприема срещу Dynamic Query, ще ви покаже някои аргументи във всеки случай и е по-добре да приемете собственото си решение.

Deyakі rechі, за yaki е необходимо да се мисли: Кой се нуждае от процедури, какво спестяват, Все пак?

Ясно е, че храната на вашите енергийни нужди е важна, но още по-важно е да помислите за тези, които с най-специалните напитки в средата, ориентирани към насипно състояние, са безопасни. Пазете се от параметризацията си и следвайте типичните несъответствия като SQL инжекции.

Процедурите за записване са чудо, защото могат да се променят без повторно компилиране. Ще се опитам да ги спечеля колкото е възможно повече.

Аз съм заместник ad-hoc за напитки, които се генерират динамично въз основа на въвеждането на coristuvach.

Процедури по други причини, а също така е по-лесно да се подобри процедурата за допълнителни профили или части от proc. В този ранг не е нужно да казвате на никого за стартирането на вашите програми, за да разберете какво се изпраща на SQL сървъра

Ако искате да попитате ad-hoc, променете мнението си, че те са параметризирани

SQL или SPROC параметризация... няма голямо значение по отношение на производителността... можете да поискате оптимизация на един от тях.

За мен останалото предимство на SPROC е, че мога да изключа много права за управление на правата на SQL, просто давам правата си да влизам в sprocs... за да можете да спечелите Parametized SQL, влезте, свържете се с вашия ред за връзка , може и повече (запис на произволен тип оператор за избор на една от таблиците, до които имат достъп например).

Както и преди, предпочитах параметризиран SQL, искайки да...

Аргумент за производителност е спирим - 3 горни RDBM възвръщат плана за пиене и дневни часове. Його беше документиран... Какво е още 1995 г.?

Въпреки това, внедряването на SQL във вашата програма също е лош дизайн - поддръжка на код, може би не е достатъчно добра концепция за богатите.

По същия начин програмата може да започне от нулата за допълнителен ORM (допълнения от зеленото поле далеч от kіlkoh!), tse vіdminny vibrіr, oskіlki модел на вашия клас keruє вашия DB модел, че само един час.

Тъй като структурата на ORM не е налична, ние хакнахме хибридно pidhide, за да създадем XML файл с SQL ресурси за запитване на ред SQL за необходимото (след това зловонието се кешира от инфраструктурата на ресурсите). Точно както SQL ще изисква някои малки манипулации, които са различни от кода, той също ще изисква голяма манипулация на ред SQL, който ние преосмисляме.

Този хибриден pidkhid улеснява управлението на търговците на дребно (може би, ако съм по-малък, фрагментите на моя екип могат да бъдат изчистени, за да мога да прочета плана за заявката), а ларинксът е просто повторна проверка на SVN. Освен това ще ви помоля да превключите RDBM - просто заменете SQL ресурсния файл (очевидно не е толкова прост като ORM инструмент, но работи със стари системи или база данни, която не се поддържа)

Моето мнение е, че 90% от заявките и/или процедурите, които се запазват, не са отговорни за записване на среща (приети, ръчно).

Достъпът до данните може да се генерира автоматично. Можете да изберете дали искате да генерирате процедури статично по време на компилация или динамично по време на изграждане, или ако искате да добавите колона към таблицата (правомощия за обект), трябва да промените само един файл.

Ще запазя всички данни достъпкода на програмата, като в този случай достъпът до данните може да бъде получен директно от SQL-заявки. От друга страна, логиката управление, както съм поставил в базата данни при вида на тригери, процедури за запис, основни функции и др. Пример за това, че уважавам датата на базата данни и генерирането на данни - приемливо е нашият клиент да има собствено и фамилно име. Сега за интерфейса koristuvach е необходимо DisplayName, както изглежда от някаква нетривиална логика. За това поколение създавам процедура, която се запазва, след което тя ще бъде стартирана от тригер всеки път, когато редът се актуализира (в противен случай други данни).

Изглежда, че има нещо по-неразбираемо, че достъпът до данни е същият като базата данни и всичко, което си струва да има достъп до данни, тези данни са там. Просто е грешно, но управлявам много проекти, като крещя от идеи. Вероятно цял местен феномен.

В началото на този цикъл светът разгледа как е възможно да се изтеглят данни от таблицата, да се променя нейната структура, да се създават, модифицират и виждат базите данни и обектите, които са скрити в тях. В тази статия ще говорим повече за обектите, които са типични за сървърните СУБД: известия, тригери и процедури, които се записват.

В първата статия от този цикъл, публикувана в № 3'2000 на нашето списание, ние посочихме, че повечето от текущите сървърни СУБД поддържат уведомления, тригери и процедури, които се запазват. Външностите се поддържат и от bugatma DBMS, например Access, dBase, Clipper.

Посочете, че тригерите и процедурите, които се записват, трябва да бъдат написани на език за програмиране, който е процедурно разширение на езика SQL. Разширените изрази ви позволяват да опишете алгоритми, например do...while, if...then... else, използвани в самия SQL език. На разлика от езика, който се подрежда стандарта на SQL, неговите процедури не са стандартизирани, и различни СУБД използват различни синтаксични конструкции за реализация на тези самите конструкции, но обясненията на отличностите в синтаксиса на разширения SQL за различни СУБД се използват за рамки на тази статия.

За да илюстрираме как е възможно да се изкривят външния вид, тригерите и процедурите, които се записват, избрахме Microsoft SQL Server 7.0 и базата данни NorthWind, която е включена преди комплекта за доставка на СУБД.

На първо място, кандидатствайте, отдайте уважение на онези, които внедряват и запазват тригери и процедури, които са победители в СУБД, може да се счита за насочване към тази статистика. Освен това за създаване на сървърни обекти са разрешени следните майки, сякаш е даден администратор на базата данни.

Показателно е също, че някои ODBC драйвери не поддържат цикъла от процедури, които се записват от клиентски добавки, но така го поддържа самата СУБД. Защитете по същия начин процедурите, които са запазени, възможно най-рано, могат да бъдат елиминирани от тригери.

Нека да разгледаме фактите, след това да обсъдим процедурите, които са запазени, и да завършим, като разгледаме тригерите.

Външен вид

Представяне - tse виртуална таблица, звънене на броя на колоните на една от броя на таблиците. Няма реални данни, а само SQL-заявка от типа SELECT, показваща същите данни и от кои таблици е необходимо да се вземат при връщане към първото представяне. Z tsієї точка zoru yavlennya - tse питам, scho zberіgaєtsya.

Повечето от vipadkiv са представени с победи за сигурността на данните. Например, дяконите от категорията coristuvachiv могат да бъдат достъпни преди да се появят, но не и в таблица, те могат да формират данни; В допълнение, SQL-заявката може да зададе параметъра USER (име, под който е регистриран koristuvach), и в този случай наличните данни, когато се върнете към датата, ще попаднат под името на koristuvach.

По-долу са основните характеристики на проявлението:

  • yavlennya се държат като маса;
  • проявено не да отмъсти за данните;
  • Подаването може да спечели повече данни от същата таблица.

За да създадем изгледи, можем да настроим SQL предложението CREATE VIEW, да го модифицираме с предложението ALTER VIEW и да го изтрием с предложението DROP VIEW.

Нека разгледаме израза CREATE VIEW, който ви позволява да създадете изглед за поточна база данни.

СЪЗДАВАЙТЕ предложение VIEW

Синтаксисът на предложението за създаване на израз отгатва предложението SQL SELECT с редица допълнителни ключови думи. По-долу е прост синтаксис:

СЪЗДАВАНЕ НА ИЗГЛЕЖДАНЕ име_на_изглед КАТО израз на_избор

Аргументът view_name указва името на изгледа. Ключовата дума, която се съпоставя в Microsoft SQL Server, ви позволява да прикачите оригиналния текст на предложението CREATE VIEW към таблицата syscomments.

Ключовата дума AS показва коя SELECT заявка е действително приложима при връщане преди подаване. Внимание, че заявката не може да замени ключовите думи ORDER BY, COMPUTE или COMPUTE BY, INTO и не може да се отнася до графика.

За да промените създаденото по-рано изявление, следвайте предложението ALTER VIEW, както е описано в обидния раздел.

ИЗГЛЕЖДАНЕ на предложението

Tsya предложение vikoristovuєtsya за vydalannya vyavlennya z da nih. Отдайте уважение на тези, които, когато таблиците се видят от базата данни, се виждат всички твърдения, които се отнасят до нея. Vikoristovuyuchi tsyu предложение, ние сме виновни, че казваме im'ya vyavlennya, scho seen. След като бъде видяна, цялата информация за новия се вижда от системните таблици.

Още един момент, ако трябва да го видите, можете да обвините ума си, че структурата на таблиците, на които се основава, се е променила след създаването на явлението. С този изглед можете да видите виставата и да я създадете отново за допълнителното предложение CREATE VIEW.

Създаване и vikoristannya проявление

Предложението CREATE VIEW се използва за създаване на изявление, което ви позволява да промените данните, сякаш те трябва да бъдат дадени на певците. Поданията се създават в текущата база данни и се събират като обект.

Най-добрият начин да създадете външен вид е да създадете заявка SELECT и след като сте я интерпретирали погрешно, да добавите липсващата част от предложението CREATE VIEW. Нека да разгледаме изходния текст на декларацията за продукти по категории в базата данни NorthWind (листинг 1).

Първият ред, визиите с удебелен шрифт, е този, който въвежда предложението SQL за създаването на израза SELECT, което печели робота за избора на данни. Клаузата SELECT, която да се приложи към тези данни, избира полета от две таблици - полето CategoryName от таблицата CATEGORIES и полетата ProductName, QuantityPerUnit, UnitsInStock, Discontinued от таблицата PRODUCTS. Ако са дадени тези данни, двете таблици са свързани с полето CategoryID и само тези продукти, които са на склад (критерий за разделяне след ключовата дума WHERE) се включват в получения набор от данни. Резултатът от връщането към първото подаване е показан на фиг. един .

Сега нека направим изявление, сякаш показваме всички територии на подобен регион. Целта на презентацията е да излезе от атаката (листинг 2).

След като се забъркаме с факта, че предложението SELECT завърта резултатите, както ни трябва, ние добавяме оператора CREATE VIEW и присвояваме името EASTTERR, което се създава (листинг 3).

Вместо да създавате ръчно изпратен текст, можете да използвате визуални инструменти, за да влезете в склада на СУБД. На фиг. Фигура 2 показва как едно и също приложение може да бъде създадено зад допълнителния инструмент View Designer, който е складовата част на Enterprise Manager, който идва преди Microsoft SQL Server.

Горната част на View Designer ви позволява да укажете как се обвързват таблиците и кои полета да се показват в данните. По-долу можете да въведете псевдонимни таблици и полета, подмяна на техните стойности, начин на показване. Дали постави окончателния текст на уведомлението и резултатите от yogo vikonannya.

Първо, нека завърша кратък преглед, ще поговорим малко за тях, как да вземем допълнителна информация за тях. В Microsoft SQL Server 7.0 можем да настроим следните системни процедури, които се записват:

  • За да извлечете информация за документите, можете да използвате системната процедура sp_help. Например, sp_help EastTerr, за да обърнете ситуацията около инцидента;
  • за да редактирате входния текст, можете да настроите процедурата sp_helptext, която се запазва;
  • за да знаете списъка с таблици, в които да съхранявате представяне, можете да използвате системната процедура sp_depends;
  • за да преименувате израз, можете да настроите системната процедура sp_rename, която е запазена.

Разгледахме кого сме разделили, как да спечелим доказателства за премахване на данни, как да изпълним тези и други критерии. Нека се обърнем към останалата част от дупето. В базата данни NorthWind има няколко региона и за избор на списък с територии на избраните региони са ни необходими няколко различни декларации. Задачата може да бъде простена, yakbee може да е предал стойността на RegionID като параметър. Възможно е да се работи за допълнителни процедури, за какво да се погрижим, за които ще говорим в офанзивната дивизия.

Процедури за запазване

Процедурата, която се записва, е компилиране на набор от SQL предложения, запазване в базата данни като именуване на обекти и конкатенация като единичен кодов фрагмент. Процедурите за запис могат да приемат и въртят параметри. Ако създадете процедура, която е запазена, сървърът я компилира и я поставя в кеша, който се разпространява, след което компилационният код може да бъде блокиран от стикери. Ако програмата изпревари процедурата, която трябва да бъде запазена, тя предава параметрите според нуждите и сървърът печели процедурата без повторно компилиране.

Процедурите за запазване ви позволяват да увеличите производителността на програмите. На първо място, porіvnjano іz големи SQL-заявки, които са принудени от добавката на клиента, смрадът отнема по-малко от час, за да се подготви преди края, смрадите на snk са вече компилирани и запазени. От друга страна, по-малко трафик също е по-малко в пъти, по-малко във времена на трансфери на SQL заявки, по-малък брой данни се предават във връзките. Ориз. 3 илюстративни седмични процедури, които се приемат от приложението на клиента.

Процедурите за запазване се прекомпилират автоматично, сякаш с обекти, изливане на смрад в тях, zrobleno be-yaki промяна; іnakshe kazhuchi, смрад zavzhdi действително. Както вече беше споменато по-горе, процедурите, които се запазват, могат да приемат параметри, които позволяват на различни добавки да спечелят една и съща процедура, застосоваващи различни набори от входни данни.

Процедурите за запазване са необходими за поддържане на целостта на данните и прилагането на бизнес правила. На моменти, добавкова гъвкавост, достъпни са фрагменти, тъй като бизнес правилата се променят, можете да промените текста на процедурата, без да променяте клиентските допълнения.

За да създавате, променяте и модифицирате процедури, използвайте специални SQL предложения - CREATE PROCEDURE, ALTER PROCEDURE и DROP PROCEDURE. Гледаме ги в офанзивната дивизия.

Предложение СЪЗДАВАНЕ НА ПРОЦЕДУРА

Клаузата CREATE PROCEDURE е избрана за създаване на процедурата, която да бъде запазена. Може да има обиден синтаксис за синтаксис:

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

Аргументът proc_name задава името на процедурата, което може да бъде запазено, ако може да бъде уникално в базата данни на нишките. Аргументът @parameter определя параметър на процедурата. Клаузата CREATE PROCEDURE може да има един или повече параметри. Въпреки че параметърът няма стойност за промоции, може да има преводи от кореспондент (или допълнение на клиента) в рамките на часа на седмичната процедура. В Microsoft SQL Server 7.0 броят на параметрите на процедурата, които се приемат, не е отговорен за отмяната на 1024; за umovchannyam смрад mozhut майка znachennya NULL.

Показателно е, че съществуването на универсални механизми за достъп до данни може да наложи допълнителни ограничения върху броя на параметрите на процедурата, които се записват. Например, BDE драйверът за Oracle 8 е вграден за работа само с процедури, чийто брой параметри не се променя 10.

Аргументът data_type определя типа данни за параметъра. Ключовата дума по подразбиране може да се използва за задаване на стойност зад промоция - тя може да бъде константа или NULL. Когато е посочена стойност за заключване, процедурата може да бъде пропусната без стойност за параметъра. По същия начин процедурата използва параметър с ключовата дума LIKE, стойността на промоцията може да бъде заменена с групови знаци (%, _ и [^]).

Ключовата дума OUTPUT показва кой параметър да се обърне.

Ключовата дума AS показва как процедурата може да бъде визуализирана дали има много SQL предложения и предложения в SQL процедурното разширение, специфично за този сървър.

Процедурата, създадена за допълнителната клауза CREATE PROCEDURE, ще бъде запазена от поточната база данни. В Microsoft SQL Server имената на процедурите се поставят в системната таблица на sysobjects, а изходният текст се поставя в таблицата на syscomments.

За да промените това, което беше направено по-рано, се избира следната процедура, за да спечели предложението ПРОМЕНИ ПРОЦЕДУРА, описана накратко в следващия раздел.

ПРОЦЕДУРА ОТПАДАНЕ на предложението

Tsya предложение vikoristovuetsya за отдалечени процедури, които са взети от базата данни. Предложението DROP PROCEDURE приема един аргумент, името на процедурата, която трябва да се види.

При премахване на запазени процедури информацията за тях се премахва от системните таблици sysobjects и syscomments.

Създаването на избраните процедури, които се записват

В клона, присвоен на събитията, отдадохме уважение на онези, които биха били удобни, така че можем да предадем параметър към презентацията, който да замени стойността на RegionID за избор на един от четирите региона в базата данни на NorthWind. Нека го разгледаме отново, което превръща списъка с територии в региона:

ИЗБЕРЕТЕ Territories.TerritoryDescription, Region.RegionDescription ОТ територии INNER JOIN Region ON Territories.RegionID = Region.RegionID WHERE Territories.RegionID = 1

За да изберем друг регион, трябва да променим мнението си в клаузата WHERE в оставащия ред. Освен това, тъй като сме променили (наричаме го RegID), можем да изберем един от четирите региона, без да променяме други части от записването.

Базата данни NorthWind има няколко региона с номера от 1 до 4. Това означава, че RegID може да бъде променен като цял тип. Кодът на процедурата, която трябва да се предприеме, е показан по-долу:

СЪЗДАВАНЕ НА ПРОЦЕДУРА ShowRegion @RegID int КАТО ИЗБЕРЕТЕ Territories.TerritoryDescription, Region.RegionDescription ОТ територии INNER JOIN Region ON Territories.RegionID = Region.RegionID WHERE Territories.RegionID = @RegID

Върнете уважение към тези, които може да са отказали целия текст до SELECT untainable (когато се вижда в курсив) и са добавили само предложението CREATE PROCEDURE към името на новосъздадената процедура, която се приема (в първия ред), параметърът е declared (в другия ред) и ключовата дума AS, която показва кочана от предложения, наистина печели.

Резултатът от създадената процедура SQL Server Query Analyzer за RegID = 2 показания на фиг. 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_ и се записват в главната база данни. По-често вече описахме делата на често победоносните системни процедури, които се спасяват.

Разкриете уважение, че тригерите не са виновни за обръщане на користувачевите данни.

Предложението CREATE TRIGGER може да има две специални таблици. Например, изтритите и вмъкнатите таблици могат да имат същата структура като таблица, да се присвоява тригер и да се изтриват стари и нови стойности на записи, които са били променени. Например, можем да завъртим следното SQL предложение, за да търсим отдалечени записи:

SELECT * FROM изтрит

На масата Фигура 3 показва както изтритите, така и вмъкнатите таблици за всички възможни промени в данните.

За да промените явно задействане, следвайте предложението ALTER TRIGGER. Нека поговорим за нещо ново в офанзивната дивизия.

За кочана трябва да добавим две нови полета към таблицата, в които числата ще бъдат намалени. А именно їх UpdatedBy (името на мениджъра, който е спрял записа) и UpdatedWhen (часът, в който записът е променен). Нека създадем тригер, наречен KeepTrack. код на оста йога:

CREATE TRIGGER KeepTrack ON Customers INSERT, UPDATE AS UPDATE Customers SET Customers.UpdatedBy = USER_NAME(), Customers.UpdatedWhen = GETDATE() FROM вмъкнато, Customers WHERE inserted.CustomerID = Customers.CustomerID

Както можете да видите от изходния текст на тригера, vin се проверява след операциите INSERT и UPDATE в таблицата Customers. Този тригер ще запази името на мениджъра (база данни) от полето Customers.UpdatedBy и ще промени датата и часа от полето Customers.UpdatedWhen. Номера на данните са изключени от графика, въведени.

Подобно на Bachimo, този тригер ви позволява да следвате промените и да вмъквате нови записи в таблицата.

Преди това, как да завършим кратък преглед на тригерите, ние сме виновни за помощ, така че можете да знаете информацията за тригерите. Таблицата sysobjects съхранява информация за тригери и типове, а таблицата syscomments съхранява техния изходен текст.

Висновок

В тази част разгледахме няколко типа обекти на базата данни - процедури, откриване и тригери, които се записват. Разпознахме аванса:

  • Външен вид - tse виртуална таблица, звук, създаден като подмножество от колони в един брой таблици. CREATE VIEW се използва за създаване на изглед, ALTER VIEW се използва за промяната му и DROP VIEW се използва за изтриването му.
  • Процедурата, която се записва, е компилиране на набор от SQL предложения, запазване в базата данни като именуване на обекти и конкатенация като единичен кодов фрагмент. За да създадете процедура, която се записва, се задава предложението СЪЗДАВАНЕ НА ПРОЦЕДУРА, за промяна - ПРОМЕНИ ПРОЦЕДУРА и за изтриване - ОТПУСКА ПРОЦЕДУРА.
  • Тригерът е специален тип процедура, която се записва, тъй като се извиква автоматично, ако данните в единичната таблица са добавени, видими или променени за допълнителни SQL предложения INSERT, DELETE или UPDATE. Тригерите се създават с помощта на клаузата CREATE TRIGGER. За да промените задействане, се избира предложението ALTER TRIGGER и предложението DROP TRIGGER се премахва.

Компютърна преса 12"2000г

Включете ред във вашата процедура - SET NOCOUNT ON:

С удобен за кожата DML вирус, SQL сървърът незабавно ни казва какво да правим с броя на записаните записи. Tsya іnformatsija може да бъде за нас цената на кода, но след това ще бъде абсолютно перфектна. Като напишем SET NOCOUNT ON, ние активираме тази функция. За процедури, които могат да премахнат броя на вирусите или циклите, които могат да дадат значително увеличение на производителността, количеството трафик ще бъде значително намалено.

Transact SQL

Свържете името на схемата с името на обекта:

Е, тук мисля, че zrazumilo. Операцията се дава на сървъра de shukati ob'єkti и zamіst на това, schob безпроблемно ровейки из вашите zasіkah, вие ще знаете къде трябва да пиете и какво да вземете. С голям брой бази, таблици и процедури, които се записват, може да ни спести време и нерви.

Transact SQL

SELECT * FROM dbo.MyTable -- Оста е толкова добра -- Заменете SELECT * FROM MyTable -- И така е лошо -- EXEC процедура извикване dbo.MyProc -- Съжалявам отново -- Заменете EXEC MyProc -- Лошо!

Не използвайте префикса "sp_" в имената на вашите процедури, които се избягват:

Всъщност нашата процедура се основава на sp_, SQL Server на първо място в основната му база данни. Вдясно даденият префикс е избран за специални вътрешни сървърни процедури, които се записват. Този йога експеримент може да се доведе до допълнителни витрации и да се получи неправилен резултат, тъй като процедурата със същите имена, като вашата, ще бъде намерена в йога базата данни.

Променете АКО СЪЩЕСТВУВА (ИЗБЕРЕТЕ 1) вместо АКО СЪЩЕСТВУВА (ИЗБЕРЕТЕ *):

За да променим външния вид на записа в следващата таблица, печелим IF EXISTS viraz. Датският прозорец се превръща в истина, така че дори една стойност, която не е важна "1", всички колони или таблица се обръща от вътрешния прозорец. Vіdomі danі, по принцип не vikoristovuyutsya. По този начин, за да се stisnennya трафик в часа на предаване на данни, е по-логично да се победи "1", както е показано по-долу.

Записване на SQL процедури - хакване на програмен модул, който може да бъде запазен от разглеждане на различни обекти. С други думи, обектът, който има SQL-инструкциите. Процедурите, които се записват, могат да се използват в клиенти на приложения за постигане на добра производителност. В допълнение, такива обекти често се извикват от други сценарии или за вдъхновение на някакъв друг вид разпространение.

Влизане

Важно е всеки да знае, че те са подобни на други процедури (например MS SQL). Може би си прав. Те могат да имат сходни параметри, да виждат подобни стойности. Над тях вонята стои цял час. Например, смрадите са свързани с базите данни DDL и DML, както и с основните функции (кодово име - UDF).

Всъщност SQL процедурите, за които се грижи, имат широк спектър от предимства, тъй като виждат средата на тези процеси. Безпека, променливост на програмирането, производителност - всичко това добавя към ядрото, което работи от бази данни, повече данни. Пикът на популярността на процедурите падна през 2005-2010 г., ако програмата беше пусната под името "Microsoft" под името SQL Server Management Studio. С помощта на бази данни стана много по-просто, по-практично и по-удобно. От рока в света такава набира популярност сред програмистите. Днес това е абсолютно здрава програма, като за потребители, като “свързване” с бази данни, стана като “Exel”.

Когато щракнете върху процедурата, тя незабавно се обработва от самия сървър без zayvih protsessіv, че vtruchannya coristuvacha. Ако е така, можете да zdiyasnyuvati да бъде като далечна, vikonannya, промяна. За всичко това ви е необходим DDL-оператор, който е самоук да ограбва най-сложните части от обработката на обекти. Освен това изглежда, че е много бърз, а сървърът всъщност не е navantazhuetsya. Този вид скорост и производителност ви позволяват лесно да прехвърляте големи количества информация от сървъра към сървъра.

За внедряването на тази технология роботите с информация са базирани на mov програмиране. Преди тях можете да видите например PL / SQL като Oracle, PSQL в системите InterBase и Firebird, както и класическия Transact-SQL „Microsoft“. Всички смърди се разпознават за създаване и приключване на процедури, които се записват, които позволяват овладяване на алгоритми в страхотни бази данни. Необходимо е тези, които управляват такава информация, да могат да защитят всички обекти от неоторизиран достъп до системи на трети страни и, очевидно, да създават, променят или преглеждат други данни.

производителност

Обектите на база данни Qi могат да бъдат програмирани с различни пътища. Tse позволява на coristuvachas да избере вида на викорния метод, който ще бъде най-подходящ, което ще спести силата на този час. Освен това самата процедура се обработва, което ви позволява да скриете страхотните почасови обменни курсове между сървъра и сървъра. Също така модулът може да бъде препрограмиран и сменен по всяко време. Особено varto означава скорост, с която е необходимо да стартирате запазена SQL процедура: този процес е по-важен за други подобни на него, за да може да се направи лесно и универсално.

Безпека

Този тип обработка на информация се използва в подобни процеси, което гарантира подобрена сигурност. Tse bezpechuetsya за сметка на факта, че достъпът на други до процедурите може да бъде изключен отново. Tse да позволи на администратора да извършва операции с тях самостоятелно, без да се страхува от perehoplennya информация или неоторизиран достъп до базата данни.

Прехвърляне на данни

Връзката между SQL процедурата, която е взета, и добавката на клиента се основава на различни параметри и стойности, които се въртят. Нека не прехвърляме obov'yazkovo данни на процедурата, която се записва, информацията се обработва (главно при поискване) и се обработва за SQL. Тъй като процедурата, която се записва, приключи работата си, има пакети с данни обратно (але, знам, за бъговете) към допълнението, за да можете да използвате йога, победни методи, с помощта на които можете разберете как да запишете SQL процедурата, затова обръщам, например:

Подаване на данни за допълнителен параметър към типа на изхода;

Прехвърляне на данни за помощ на оператора;

Силата на почит за съдействието на оператора при избора.

А сега нека да погледнем, сякаш разглеждаме целия процес по средата.

1. Създаване на EXEC запазена процедура в SQL

Можете да създадете процедура в MS SQL (Managment Studio). След като процедурата бъде създадена, тя ще бъде пренаредена от програмните базови данни на vuzol, в които процедурата ще бъде създадена от оператора. За vykonannya SQL процедура, scho zberіgayutsya, vykoristovuyut EXEC-процес, kaki m_sti іm'ya на самия обект.

Когато процедурата се комбинира, първо се декларира името, след което се избират един или повече от зададените за вас параметри. Параметрите могат да бъдат необвързващи. Тъй като параметрите за тялото на процедурата ще бъдат записани, е необходимо да се извършат необходимите операции.

Вдясно, тъй като тялото може да се смени локално, roztashovani в nіy, и tsі се променя локално също според датата преди процедурите. С други думи, те могат да се видят само в средата на тялото на процедурата на Microsoft SQL Server. Процедурите за спестяване на моменти са vvazhayutsya местни.

По този начин, за да създадем процедура, се нуждаем от името на процедурата и поне един параметър в тялото на процедурата. Хванете уважението, че най-важният вариант за такова време е създаването на процедурата за името на схемата в класификатора.

Тялото на процедурата може да бъде някакъв вид пример, като например създаването на таблици, вмъкването на един или повече редове в таблици, типа и естеството на базата данни и т.н. Протео тялото на процедурата е между победите на текущите операции в новата. Актовете за важно разграничаване са изградени по-долу:

Тялото не е виновно за извършване на друга процедура, която се спасява;

Тялото може да създаде прошка за обекта;

Тялото не е виновно за създаването на ежедневни тригери.

2. Инсталиране на промяна в тялото на процедурата

Можете да ги промените локално спрямо тялото на процедурата, а миризмите ще се сменят само в средата на тялото на процедурата. Добра практика е създаването на процедури, които се сменят върху кочана на тялото, които се запазват. Но също така е възможно да се инсталират промени на всяко място в тялото на даден обект.

В някои случаи можете да разберете, че няколко от промените са инсталирани в един ред и кожата на параметъра за промяна е подсилена с вода. Също така, моля, имайте предвид, че можете да промените префикса @. Можете да вмъкнете промяна за вида на процедурата, където пожелаете. Например, промяната на @NAME1 може да бъде озвучена по-близо до края на процедурата. За да се даде значението на безгласната промяна, се събира набор от специални данни. Въз основа на ситуацията, ако повече от една промяна е изразена в един ред, в такава ситуация има по-малко от един набор от специални данни.

Доста често викторините питат: "Как да разпознаете малка стойност в едно изявление в заглавието на процедура?" Добре. Хранете цикавата, но е по-лесно да я направите по-богата, не мислите така. Съвет: за помощ на такива двойки, като "Select Var = value". Можете да победите шансовете, разпространявайки ги с кома.

В най-манипулативните дупета хората показват създаването на проста процедура, за какво се полагат грижи и виконання її. За тази процедура можете да вземете такива параметри като процеса, това, което той извиква, и стойността е близка до новата (но не я променяйте). Когато вонята избяга, тогава в средата на тялото започват процесите. Например, за да създадете процедура, как да приемете местоположението на региона от абоната, какво да се обадите и да обърнете данните за тях, колко автори са изпратени до местоположението на региона. Процедурата ще вземе предвид таблиците на авторите на базата данни, например Pubs, до края на списъка с автори. За да разгледаме базата данни, например, Google улавя SQL скрипта от страната на SQL2005.

В предния случай процедурата приема два параметъра, които ще се наричат ​​@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. Чиито целият начин на прехвърляне на параметри е във важен ред. Този метод се нарича порядъчно предаване на аргумент. По друг начин параметрите се разпознават недвусмислено и по този начин редът не е важен. Друг начин да направите това е да предадете наименувани аргументи.

Процедурата може да бъде променена стандартно. Така върви, като в предното дупе, но само тук се показват параметрите. Така че параметърът @City се взема първо, а @State се взема от стойностите за заключване. Параметърът зад ключалката ще звучи така, сякаш всичко е наред. SQL процедурите, които се записват, се предават като прости параметри. В този случай, имайте предвид, че параметърът UT отменя стойността за заключване на SA. Другата викуна има повече от една стойност на аргумента за параметъра @ City, а параметърът @ State приема стойността на CA ключа. Актуализациите на програмата ще бъдат доволни, така че промените за съкращенията ще бъдат актуализирани по-близо до края на списъка с параметри. По различен начин, ние не можем да vykonannya и дори вие сте виновни, че практикувате с прехвърлянето на именуване на аргументи, което е по-добро и по-сгъваемо.

4. Запазване на процедурите на SQL Server: Начини за завъртане

Има три важни начина за управление на данните при запазените процедури за възбрана. Вонята е реабилитирана по-долу:

Обръщане на стойността на процедурата, която се предприема;

Изключете параметъра на процедурите, които се записват;

Изберете една от запазените процедури.

4.1 Обръщане на стойността на запазване на SQL процедури

При този метод процедурата дава стойността на локалната промяна и я завърта. Процедурата може да се обърне без забавяне. В атакуващия дуп те създадоха процедура, сякаш преобръщаха голям брой автори. Ако сравните тази процедура с предишните, можете да си помислите, че значението за другата се заменя с връщането.

Сега да се чудим как да следваме процедурата и да влезем в смисъла, как да се обърнем. Vikonannya процедура vmagaє vstanovlennya zminnoї, че приятел, як да се извършва след процеса. Имайте предвид, че можете да замените оператор Select, например Select @RetValue, както и OutputValue.

4.2 Изтриването на параметър на SQL процедурата да бъде запазено

Значението на vіdpovіd може да бъде vikoristane за завъртане на един zminnoy, който ние и bachiled в предния приклад. Вариант на изходния параметър позволява на процедурата да коригира една или друга стойност на промяната за другата страна. Изходният параметър се обозначава със същата ключова дума "Изход", когато се създава процедурата. Ако параметърът на заданието е изходен параметър, тогава обектът на процедурата е отговорен за задаването на неговата стойност. Процедурите за запазване на SQL, които могат да се използват по-ниско, се използват в различни случаи с информация за подпакет.

Нашето приложение ще има две официални имена: @ TotalAuthors и @ TotalNoContract. Миризмата се обозначава от списъка с параметри. Броят на промените е даден в средата на тялото на процедурата. Ако спечелим параметрите, абонатът може да избере стойността, вмъкната в средата на тялото на процедурата.

Освен това в предишния сценарий се правят две промени, за да се увеличи стойността, сякаш се запазва процедурата на MS SQL Server в изходния параметър. След това процедурата е изпреварена от пътя на настройка на нормалната стойност на параметъра CA. Следващите параметри са същите, а по-късно беззвучните промени се предават по ред. Уловете уважението, че часът на преминаване на променените дни е ключовата дума, също е дадена тук. След като процедурата е успешна, се показва значението, когато се обръщат за помощ на последните параметри за по-нататъшно съгласуване.

4.3 Изберете една от SQL процедурите за запазване

Тази техника е победоносна за превръщането на набора от стойности в таблиците с данни (RecordSet) към пълната процедура, която се предприема. В това приложение SQL процедурата, която се записва, с параметрите @AuthID, захранва таблицата "Автори" с път на филтър, записите се въртят след допълнителния параметър @AuthId. Инструкцията Select отменя това, което може да се завърти и извиква процедури за избор. Когато процедурата се провали, AuthId се предава обратно. Такава процедура тук винаги върти само един запис, в противен случай е необходимо. Ale, процедурата, която се предприема, не може да прехвърля повече от един запис всеки ден. Често е възможно да се използва пример, в някои от оборотите на данни с избор на параметри, с участието на изчисляването на промяната, има начин за даване на редица стойности на торбичката.

Накрая

Процедурата, която се записва, е да се допълни със сериозен софтуерен модул, който той върти или предава, а също така инсталира необходимите промени в клиентското допълнение. Oskіlki процедура, която се запазва, vikonuєtsya на самия сървър, обменът на данни с големи задължения между сървъра и добавката на клиента (за тези, които могат да се приспадат) могат да бъдат изтрити. Това ви позволява да преминете към SQL сървъра, който очевидно отива в ръцете на техните владетели. Една от предвидимите са T SQL процедурите, за които се грижат онези, които участват в създаването на значими бази данни. Също така е страхотно, за да вдъхнете голям брой нюанси, които могат да бъдат различни при извършване на процедури, които са запазени, е по-необходимо за тези, които планират да се занимават с програмиране, включително професионално.

Ако има следните процедури, които трябва да бъдат запазени, и ако съм виновен за победа на изявление в SQL Server?

Позволете ми да създавате динамични напитки, как можем да подобрим параметрите?

Кое от тях е най-видимо и кое е най-доброто и кое е най-малко?

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

Какво означава, да кажем, че изразите създават виртуална таблица, а процедурите - таблица с материали?

Бъдете любезни, уведомете ме за още точки, като вонята.

Събиране на решения от мрежата на "Защо има разлика между процедури, спестявания и данъци?"

Вижте є виртуаленмаса. Можете да стигнете до броя на таблиците в подаването и да спечелите заявлението за подаване на данни, така че данните да бъдат намерени в една таблица.

Процедурата за избор на параметрите за избраната функция е запазена ... за да се актуализира вмъкването на данни или ротацията на другите стойности или набора от данни.

Създадени известия и процедури, които се запазват - за да отмъстят за информацията от Microsoft за тези, ако и защо ги спечелите.

Да кажем, че имам две таблици:

tbl_user Стовпци: .user_id, .user_name, .user_pw

tbl_profile Stowpci: .profile_id, .user_id .profile_description

Така че, тъй като се опитвам да извлека тези таблици МНОГО ... вместо това, за да работя в CLEAR peice sql, бих използвал поглед, например:

СЪЗДАВАНЕ Преглед на vw_user_profile AS Изберете A.user_id, B.profile_description ОТ tbl_user A наляво присъединете tbl_profile B на A.user_id = b.user_id GO

Ето защо в бъдеще искам да поискам profile_description за идентификатора на koristuvach ... всичко, което трябва да ограбя,

ИЗБЕРЕТЕ описание на профил ОТ vw_user_profile WHERE user_id = @ID

Този код може да бъде променен в процедурата, която се записва, например:

Създайте процедура dbo.getDesc @ID int AS begin SELECT profile_description FROM vw_user_profile WHERE user_id = @ID END GO

За това мога да се обадя

Dbo.getDesc 25

и премахвам описанието за ID на koristuvach 25 de 25 - вашият параметър.

Очевидно е, че BAGATO е повече, но основната идея е по-малко.

На гърба трябва да разберете, че обидите са различни речи. Спестяванията на процедурите са по-победни за операторите INSERT-UPDATE-DELETE. Тези изявления са оправдани за SELECT изявления. и си виновен за победоносно негодувание.

Не можете да променяте данните в изгледите.

Обърнете внимание: Това е виртуална таблица, която е съставена от един или повече редове и колони от различни реални таблици с база данни. Tse шаблон rowk_v и stovpts_v k_lkoh таблица. Тук не можете да предавате никакви параметри.

Процедури за запазване: използвайте набор от SQL оператори предварително, за които можете да редактирате параметри като входни данни и да премахвате изходни данни.

Появи могат да бъдат представени в процедура, която е запазена, но процедура, която е запазена, не може да бъде представена в Views...!

Процедурата shovischa е победоносна, ако обикновеният SQL просто не е достатъчен. Процедурите за запис трябва да се променят, циклите и циклите на други процедури, които се записват. Tse mova програмиране, а не mova zapitіv.

    Външностите са статични. Мислете за тях, сякаш са нови таблици с просто оформление, а данните в тях се създават по прищявка, с намесна нотка, с която сте създали всичко. Както във всяка SQL таблица, можете да сортирате и филтрирате по WHERE, GROUP BY и ORDER BY.

    Tse да оставим настрана факта, че работите.

    Tse да лежи в базата на данни. Съжаляваме, просто стартирайте заявката и филтрирайте резултата. И все пак, базите данни, като Oracle, ви позволяват да създавате "материализирани" изрази, като в основната таблица, тъй като те се актуализират автоматично, когато промените основния тип данни.

    Материализирането на изявлението ви позволява да създавате индекси в колоните на изявлението (особено върху изчислените колони, които не се намират никъде в базата данни).

    не разбирам какво казваш.

Основната разлика се състои във факта, че ако поискате изявление, обозначението се вмъква във вашата заявка. Процедурата може да даде резултати, но е компилирана и толкова бърза. Вторият вариант е да индексирате известието.

SQL View е виртуална таблица, базирана на SQL заявката SELECT. Изпращанията се подават за една или повече подходящи таблици от база данни или други изявления. Този митен знак на базата данни, точно като процедурата, която е предприета, е група от Transact-SQL оператори, сгънати в единен план за изпълнение.

Pereglyad е проста демонстрация на данните, които се записват в таблиците на базата данни, точно както процедурата, която се записва, от група оператори, които могат да бъдат виконирани.

Подадени повече, oscillki vodobrazhae данни от таблицата, за това как да попитам, точно като процедурата за събиране на sql-инструкции.

Обърнете тази статия: Преглед на процедурите, които се записват. Точно тези, които шепнеш

@Patrick е прав, когато казваш, че, добре, нека да разгледаме другата ви храна, да създадете изглед за себе си в паметта, а в остатъка тип Joins, Data и дори ако ще бъде разбит, било то агрегиране, можете да добре накрая изглежда гладен.

Запазете процедурата, за да запазите цялата си работа или със заместванията на Temp Hash Table, например #tmpTable1, или в паметта на @tmpTable1 за помощ. Zalezhno v_d на това, което искате да кажете.

Процедурата, която се предприема, е подобна на функция, но се извиква с директни имена. zamіst funktsіy, yakі всъщност vikoristovuyutsya в средата на заявката.

Очевидно през повечето време таблиците са в паметта, защото не взимате много пари.

Махеш не е прав, ако разреши вино, не можеш да промениш почитта от почитта. Татко, погледни Патрик

СЪЗДАВАНЕ Преглед на vw_user_profile AS Изберете A.user_id, B.profile_description ОТ tbl_user A ляво присъединяване към tbl_profile B на A.user_id = b.user_id

Мога да актуализирам данни ... като дупе, мога да разбера дали е cich ...

Актуализация vw_user_profile Задайте profile_description="Мениджър", където user_id=4

Актуализиране на tbl_profile Задайте profile_description="Manager", където user_id=4

Не можете да го вмъкнете в декларацията, тъй като не присъстват всички полета в цялата таблица и предполагам, че PROFILE_ID е първичният ключ и не може да бъде NULL. Въпреки това, можете също да вмъкнете INSERT във vistavu ...

Създадох приложение за основната маса, використ ...

Създаване на нежелана изглед като SELECT * изглед

Вмъкнете в нежелани (код, име) стойности ("glyn","Glyn Roberts"), ("Mary","Maryann Roberts")

ИЗТРИВАНЕ от боклук Където ID>4

І INSERT, і DELETE работиха в същата точка

Очевидно не можете да промените дали полетата са, дали са агрегирани, или дали са защитени, или дали са изрази, ако са просто директни изрази, те могат да бъдат променени.

Ако сте видели повече от една таблица, не можете да вмъкнете или видите, но ако сте видели повече от една таблица, можете да звучите.

В допълнение към посочването на още коментари, бих искал да добавя малко уважение към Views.

  1. Подаръците могат да бъдат победни за prikhovuvannya сгъване. Покажете своя сценарий, в който 5 души работят по проекта и само един от тях вече е екип с база данни, например сгъваеми асоциации. При такъв сценарий могат да се създават вина, които лесно могат да бъдат заявени от други членове на екипа, а смърдящи парчета да заявят една маса.
  2. Сигурността може лесно да се внедри Views. Да кажем, че ние spіvrobіtnikмаси Заплата , SSN номер. Гражданите не са виновни, че търсят користувачите, които нямат право да ги гледат. По този начин можем да създадем известие, като избиране на колоните в таблицата, като неупълномощаващи, като напр. аз съм , вик таи т.н., без да даваме противоречиви забележки (например за заплата и т.н. за това как ни се досещаха по-рано). Сега можем да видим разрешено за директна заявка към таблици служители просто го запазете за четене от темата. По този начин можем да реализираме сигурност за Help Views.