Studopediya

КАТЕГОРИЯ:


Астрономия- (809) Биология- (7483) Биотехнологии- (1457) Военное дело- (14632) Высокие технологии- (1363) География- (913) Геология- (1438) Государство- (451) Демография- (1065) Дом- (47672) Журналистика и СМИ- (912) Изобретательство- (14524) Иностранные языки- (4268) Информатика- (17799) Искусство- (1338) История- (13644) Компьютеры- (11121) Косметика- (55) Кулинария- (373) Культура- (8427) Лингвистика- (374) Литература- (1642) Маркетинг- (23702) Математика- (16968) Машиностроение- (1700) Медицина- (12668) Менеджмент- (24684) Механика- (15423) Науковедение- (506) Образование- (11852) Охрана труда- (3308) Педагогика- (5571) Полиграфия- (1312) Политика- (7869) Право- (5454) Приборостроение- (1369) Программирование- (2801) Производство- (97182) Промышленность- (8706) Психология- (18388) Религия- (3217) Связь- (10668) Сельское хозяйство- (299) Социология- (6455) Спорт- (42831) Строительство- (4793) Торговля- (5050) Транспорт- (2929) Туризм- (1568) Физика- (3942) Философия- (17015) Финансы- (26596) Химия- (22929) Экология- (12095) Экономика- (9961) Электроника- (8441) Электротехника- (4623) Энергетика- (12629) Юриспруденция- (1492) Ядерная техника- (1748) Arhitektura- (3434) Astronomiya- (809) Biologiya- (7483) Biotehnologii- (1457) Военни бизнесмен (14632) Висока technologies- (1363) Geografiya- (913) Geologiya- (1438) на държавата (451) Demografiya- ( 1065) Къща- (47672) журналистика и смирен (912) Izobretatelstvo- (14524) външен >(4268) Informatika- (17799) Iskusstvo- (1338) историята е (13644) Компютри- (11,121) Kosmetika- (55) Kulinariya- (373) културата е (8427) Lingvistika- (374) Literatura- (1642) маркетинг-(23702) математиците на (16968) Механична инженерно (1700) медицина-(12668) Management- (24684) Mehanika- (15423) Naukovedenie- (506) образователна (11852) truda- сигурност (3308) Pedagogika- (5571) Poligrafiya- (1312) Politika- (7869) Лево- (5454) Priborostroenie- (1369) Programmirovanie- (2801) производствено (97 182 ) индустрия- (8706) Psihologiya- (18388) Religiya- (3217) Svyaz (10668) Agriculture- (299) Sotsiologiya- (6455) на (42831) спортист строително (4793) Torgovlya- (5050) транспорт ( 2929) Turizm- (1568) физик (3942) Filosofiya- (17015) Finansy- (26596) химия (22929) Ekologiya- (12095) Ekonomika- (9961) Electronics- (8441) Elektrotehnika- (4623) Мощност инженерно ( 12629) Yurisprudentsiya- (1492) ядрена technics- (1748)

Съхранените процедури

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

Основна информация за съхранени процедури

Над ние показахме как да създавате, изпълнява, и запишете в Запитване анализатор команди и Transact-SQL пакети под формата на скриптове, написани на Transact-SQL език. При изпълнение на SQL Server съхраняват скриптове обработени те съдържат команди за показване резултат комплекти, SQL администрация на сървъри и манипулират информацията, съхранена в базата данни. Като правило, когато запишете файла със скрипта назначен разширяването «.SQL». Има и друг начин да се спестят на Transact-SQL скрипта: му се даде име и да го запишете като съхранена процедура. спасен така сценария, например чрез Query Analyzer Няколко spssobov повикване.

По-рано споменахме и дори използва редица съхранени процедури (sp_help или sp_helpconstraint). Те се съхраняват в основните данни и съдържа Transact-SQL команда, за да видите различните свойства на обекти на базата данни.

Цел и предимства на съхранени процедури

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

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

Съхранените процедури са в този случай по-ефективни. Когато създавате, се съхраняват в SQL Server, така че, когато се обадите на съхранена процедура, съдържанието му веднага се обработват от сървъра. Един единствен оператор дава възможност да се обадя сложен скрипт Transact-SQL, който се съдържа в запомнена процедура, която избягва изпращането на стотици отбори през мрежата.



Преди създаването на съхранена процедура, екип я тества проверка на синтаксиса. Ако не се открие никаква грешка, името на процедурата се съхранява в SysObjects маса, а текстът - в SysComments маса. Когато за първи път стартирате съхраняват план за изпълнение на процедура се създава и съхранява процедура се компилира. В бъдеще тя е по-бърза обработка, тъй като SQL Server не трябва да се провери синтаксиса да се създаде план за изпълнение и съставяне на текста на процедурата. Преди създаването на нов план в проверките на кеша за съществуващ план за изпълнение.

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

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

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

Ако разработчиците удобно писане на сложни програми на езици като C # или C ++, а след това на програмите, които могат да бъдат наречени от SQL Server с помощта на специален вид на съхранени процедури, които се наричат удължен съхраняват процедура.

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

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

Категория съхранени процедури

Има пет класа съхранени процедури: системни, локални, временни, продължителни и изтрити. Има и други начини за класификация, но това го прави лесно да се опише място, целите и възможностите на съхранената процедура.

Системни съхранени процедури са на базата на основни данни. Като правило, техните имена започват с префикс sp_. Те са предназначени за подпомагане на функциите на SQL Server (по-специално, процедурите за каталога). Те включват примерни данни от системата за таблиците за външни приложения, администриране на бази данни и управление на сигурността. Например, с помощта на съхранена процедура за работа с каталога може да се разглежда sp_table_privileges права за маси. В следното изявление, системата на запомнената процедура позволява извеждането sp_table_privileges привилегии за маса Лица от хора, на базата данни:

ИЗПОЛЗВАНЕ Хората

GO

EXECUTE sp_table_privileges Лица

Много често, администратор иска да видите информация за потребители и процеси в текущата база данни. Тази важна стъпка е предшестван от закриването на базата данни. Следното изявление от система съхранена процедура sp_who изход всички потребителските процеси MyCalculator \ Administrator:

EXECUTE sp_who @loginame = 'MyCalculator \ Administrator "

За по-голямата част от организациите, които съхраняват чувствителни данни в бази данни, сигурността е изключително важни бази данни. По-долу е изявление, че с помощта на система съхранена процедура sp_validatelogins на показва всички "затвори" потребителски акаунти и Windows групи (въпреки че не съществуват тези записи, те все още отговаря на елементи от таблиците за система SQL Server):

EXECUTE sp_validatelogins

В SQL Server включва стотици процедури на системата се съхранява; пълния списък е даден в раздел «Система съхранени процедури» забележителни книги онлайн наръчник, който се позовава на няколко разширени съхранени процедури, които ще бъдат разгледани в следващите раздели.

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

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

временно съхранена процедура е подобен на местно, но тя съществува само за да прекъснете връзката, която се създава, или до приключване на SQL Server. В зависимост от вида на такава процедура се отстранява след завършването на сървър или връзка недостатъчност. Вариациите се дължи на факта, че временните съхранени процедури са в базата данни на TempDB база данни. Тази база данни е отново създаден, така че след затварянето на сървърни обекти от този на база данни изчезват всеки път, когато се стартира сървъра. Временни съхранени процедури са полезни, когато се работи с по-ранни версии на SQL Server, които не подкрепят повторната употреба на планове за изпълнение, както и в случаите, когато няма смисъл да се запази процедурата като стойността на неговите параметри се променя непрекъснато. Има три вида на временните съхранени процедури: местни (или затворени), световната и създаден директно в TempDB. Местно процедура винаги започва с # символ, и глобално - с ##. Създаване на всеки вид временни съхранени процедури, описани в следващия раздел. При изпълнението на временно съхранени процедури за неговия обхват е ограничен до съединение, в което тя е създадена. Въпреки това, тази процедура е видим за всички потребители, за да се установи връзка с базата данни в прозореца Object Browser в Query Analyzer. Най-ограничен обхват елиминира именуване на конфликти с други съединения, които са създадени временни съхранени процедури. За да се гарантира уникалността на името на временно съхранена процедура, SQL Server добавя набор от символи и подчертава уникалния номер на връзката. Привилегии за местни лечения не са достъпни за други потребители. временно съхранена процедура се изтрива от TempDB когато затворите връзката, в която тя е създадена.

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

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

• Те имат право да настроите разрешения;

• те се запазва дори след приключване на връзката, която са създадени;

• те не са отстранени преди края на SQL Server.

Тъй като този вид процедура се създават директно в TempDB, че е важно да се определи напълно на името на обекта на база данни в кода на Transact-SQL. Например, в таблицата на хората от народа на базата данни, са собственост на DBO, трябва да се прави позоваване на името на people.dbo.persons.

Разширени съхранени процедури се обръщат към външни програми, съставени като 32-битов DLL един. Някои процедури система съхранена, също се считат за да бъде удължен. Например, съхранена процедура xp_sendmail, който изпраща на адреса в имейл съобщение с прикачен набор резултат е система и удължава в същото време. конвенцията за именуване е да се използват имена на разширени съхранени процедури hr_ префикс. Въпреки това, имената на някои от най-напредналите процедури започват с sp_ префикс, както и имената на някои други не-напредналите процедури, използвани hr_ префикс. Поради това е невъзможно да се направи разграничение между системата и разширени съхранени процедури, разчитайки само на различията в имената.

За да се определи дали разширеното съхранена процедура, функция позволява OVJECTPROPERTY. Тя се връща за имота IsExtendedProc 1, ако процедурата се удължава, или 0, ако процедурата не е. Следващите примери показват как можете да разберете какво sp_prepare процедура - удължен и xp_logininfo - не:

УПОТРЕБА магистър

- Extended съхраняват процедура с префикс sp_.

SELECT OBJECTPROPERTY (на_обект ( "sp_prepare"), "IsExtendedProc")

GO

Този пример връща стойност 1.

УПОТРЕБА магистър

- Най-съхранена процедура, която не е удължен,

- Но има hr_ префикс

SELECT OBJECTPROPERTY (на_обект ( "xp_logininfo"), "IsExtendedProc")

GO

Този пример връща стойността 0.

Дистанционно съхранена процедура се изпълнява на отдалечената копие на SQL Server. Дистанционно съхранени процедури са оставени за съвместимост с предишните версии на SQL Server 2005, разпределени заявки се използват вместо.

С запомнени процедури Operations

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

Преди изпълнението на процедурата, следва да уточни всички необходими параметри. Съхранените процедури могат да се изпълняват ръчно или автоматично (при стартиране на SQL Server). За изпълнението на процедурата е ключовата дума изпълни. Тя може да бъде пропусната, ако изпълним процедурата се състои от един ред или име на процедура е първата дума на пакета.

Често е необходимо да се измени, съхранени процедури, например, да се добави параметър или редактирате даден команда. Модификация процедури, вместо да извадите и пресъздават "от нулата", за да се спести време, тъй като измененията се запазват много от свойствата на съхранени процедури (например, права за достъп). За промяна на процедурите, използвани ключови думи ALTER ПРОЦЕДУРА.

За да деинсталирате процедури с пад на ключова дума. Процедурата може да бъде изтрит в Сървър за управление Studio или Query Analyzer, като го изберете и натиснете клавиша за изтриване. Той трябва да бъде отстранен преди процедурата, докато всичко зависи процедура обекти няма да бъдат изтрити или променени (да се премахне зависимостта).

Запазване на процедура

При създаване на процедура за SQL Server проверява синтаксиса на нейните съставни оператори Transact-SQL. Ако има синтактична грешка SQL Server генерира съобщение като «синтаксис неправилно», и процедурата не е създаден. Ако текстът на процедурата преминава синтактични проверки, процедурата е спасен, и неговото име и друга информация (например, автоматично генерира идентификационен номер) е написан на SysObjects маса, а текстът на процедурата - в SysComments маса в текущата база данни.

Избор на изложението запитва идентификационния номер на съхранената процедура от ByBirthday SysObjects база данни таблица Хората:

Изберете [име], [ID] от [хора]. [DBO]. [SysObjects]

Където [име] = 'bybirthday "

Следващият SELECT изявление, с помощта на информация от таблица SysObjects (идентификационен номер съхранени процедури ByBirthday) прави заявка към масата за SysComments:

Изберете [текст] от [хора]. [DBO]. [SysComments]

Където [ID] = 111577110

Тази заявка връща на източника на съхранена процедура ByBirthday чийто идентификационен номер е 111577110.

Ясно е, че и двата показани на SELECT изявление може да се комбинира с помощта на ключовата дума, JOIN. За простота и яснота, ние сме ги водят поотделно.

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

Методи за създаване на съхранени процедури

SQL Server предоставя няколко начина за създаване на съхранени процедури: оператор Transact-SQL CREATE ПРОЦЕДУРА, SQL- DMO ( при използване на StoredProcedure обект) Console Сървър за управление Studio и майстор създават съхранявани процедура.

Оператор CREATE ПРОЦЕДУРА (или съкратена версия на CREATE PROC) предназначен за създаване на съхранена процедура, използвайки Query Analyzer, или командния ред комунални услуги, като например Osql. CREATE PROC ви позволява да изпълнява следните задачи:

• Идентифицирайте групирани съхранени процедури;

• дефинират входни и изходни параметри, техните типове данни и стойности по подразбиране. Параметърът Определяне винаги започва със знак «в» (@), последвано от името на параметър, както и описание на нейния тип данни. В спецификацията на входни параметри трябва да присъстват OUTPUT ключова дума, която позволява да се разграничават от входни параметри;

• дисплей информация за успеха или провала на изпълнението на задачата;

• процедури за контрол за кеширане за изпълнението на плана;

• криптиране на съдържанието на съхранената процедура, за да се осигури тяхната безопасност;

• процедури за наблюдение на готовност за изпълнение, който репликира на абоната;

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

Всички съхранени процедури, с изключение на времето, са винаги в текущата база данни. Ето защо, преди да създадете процедурата трябва да изберете текущата база данни с изявлението използването име_база_данни, след което определената партида команда GO. За избор на текущата база данни, и използвайте падащия списък в Промяна на база данни на Query Analyzer.

Първият набор от данни показва още един сценарий прави базовите сегашните хора и създава процедура ListPeopleNames собственост на DBO:

ИЗПОЛЗВАНЕ Хората

GO

СЪЗДАВАНЕ НА ПРОЦЕДУРА [DBO]. [ListPeopleNames]

AS

Изберете [au_fname], [au_lname] ОТ [хора]. [DBO]. [Лицата]

GO

Имайте предвид, че тя използва пълното име на процедурата. Пълното име на съхранената процедура се състои от името на процедурата на собственика (в този случай, DBO) и името на процедурата - ListPeopleNames. Ако процедурата трябва да бъде изпълнена, независимо от собственика на масата или база данни, собственик на процедурата трябва да бъде DBO. При използване на името на изявление база данни CREATE ПРОЦЕДУРА не е включена в пълното име на съхранената процедура.

За да се създаде временна съхранена процедура, трябва да добавите името на символа #. Този знак казва SQL Server, е необходимо да се създаде процедура в TempDB на база данни. За създаване на глобална процедура, трябва да се добави към името си герои ##, - SQL Server ще го създаде в базата данни на TempDB база данни. Когато създавате временни съхранени процедури, SQL Server игнорира текущата база данни. Временни съхранени процедури са по дефиниция, съществува само в TempDB. За да се създаде процедура (с изключение на местно или глобално) директно в TempDB на база данни, първо трябва да се направи TempDB текущата база данни. По-долу показва кодовия фрагмент създава три временни съхранени процедури: местни, световни, и се поставят директно в TempDB:

- Създаване на местно временно съхранена процедура.

СЪЗДАВАНЕ НА ПРОЦЕДУРА fllocaltemp

AS

SELECT * от [хора]. [DBO]. [Лицата]

GO

- Създаване на глобалното временно съхранена процедура.

СЪЗДАВАНЕ НА ПРОЦЕДУРА ttflglobaltemp

AS

SELECT * от [хора]. [DBO]. [Лицата]

GO

- Създаване на временна съхранена процедура директно в tempdb.

УПОТРЕБА TEMPDB

GO

СЪЗДАВАНЕ НА ПРОЦЕДУРА directtemp

AS

SELECT * [хора]. [DBO]. [Граждани]

GO

Избор на изявленията, дадени пълните имена на бази данни. Ако процедурата се изпълняват извън контекста на базата данни и нейните съставни Transact-SQL команди са уникални за тази база данни, пълните имена предоставят линк към правилния базата данни.

В следващия пример, временното съхранена процедура се създава пряко във TemrDB. За да направите това, трябва да се направи актуална база данни TempDB (УПОТРЕБА TempDB) преди изпълнение на командата или да използвате пълното си име ([TempDB]. [DBO] . [Directtemp]). Както съхранени процедури от данните на магистър база данни, локални и глобални процедури право да се обадя, което показва, кратки имена (независимо от текущата база данни).

След създаването на съхранена процедура може да бъде логически свързан чрез групи. Тази техника е полезна за тези процедури, които да бъдат прилагани съвместно и да се използват като едно цяло. Към група запомнена процедура, трябва да възложите всяка процедура в групата със същото име с уникален номер за всяка процедура, разделени с точка и запетая. Например, ако по време на създаването на две процедури GroupedProc присвояване на имената; GroupedProc и 1, 2, тези процедури ще бъдат групирани логично. При преглеждане на съдържанието на кода, показан GroupedProc двете процедури, GroupedProc; 1 и GroupedProc; 2.

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

Чтобы вызывать перекомпиляцию хранимой процедуры при каждом ее исполнении, при создании следует добавить к процедуре ключевые слова WITH RECOMPILE . Разрешается также принудительно выполнить перекомпиляцию с помощью хранимой процедуры sp_rеcompile или ключевых слов WITH RECOMPILE , заданных при исполнении процедуры.

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

Например, ето как можете да създадете шифрован процедура Защитена:

ИЗПОЛЗВАНЕ Хората

GO

CREATE PROC [DBO]. [Защитена] с кодиране

AS

Изберете [au_fname], [au_lname] ОТ [хора]. [DBO]. [Лицата]

Ключови думи с кодиране криптиране на съдържанието на SysComments на колоните, които pomeshen процедури изходен код. Най-лесният начин да се определи дали процедурата е криптирана с помощта OBJECTPROPERTY функции:

- Проверете дали съхранената процедура е кодирано.

- Ако е така, върнете стойността на 1 в IsEncrypted

SELECT OBJECTPROPERTY (на_обект ( "защитена"), "IsEncrypted")

или като се обадите на процедурата с sp_helptext:

- Ако съхранената процедура е криптирана,

- За да се върнете "Коментарите на обектите са криптирани."

EXEC sp_helptext защитени

Encrypted съхранена процедура не могат да бъдат възпроизведени. SQL Server я декриптира за изпълнение. Въпреки това, никой, дори не на собственика няма да можете да видите изходния код на съхранената процедура в некриптиран вид. Ето защо, не забравяйте да се съхранява на сигурно място, некриптиран версия на дефиницията на запомнената процедура. За да промените реда, за да редактирате некриптиран версия и след това го запишете и сигурно място. След това можете да се промени съществуващото криптирана съхранена процедура изявлението ALTER ПРОЦЕДУРА чрез криптиране (около изявление ALTER процедурата, описана по-долу).

Когато създадете SQL Server съхраняват процедура не проверява за наличието на предмети, които се съдържат в процедурата Тази способност е необходимо, защото понякога на обекта (като маса), който е посочен от съхранената процедура не съществува в момента на процедурата. Това се нарича разсрочено резолюция име.

Обектът вече е проверена при изпълнението на съхранената процедура. Когато се отнася до съхранена процедура за обект (например маса), бъдете сигурни, за да покаже своя собственик. По подразбиране, SQL Server предполага, че създателят на съхранената процедура в същото време е собственик на обектите, за които се отнася. За да се избегне объркване, при създаването на самите съхранени процедури и обекти, към които те се отнасят, трябва да посочи DBO като собственик.

Изпълнение на съхранена процедура

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

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

За повикване на запомнена процедура е достатъчно да се посочи пълното си име, например [imya__bazy_dannyh]. [Owner]. [Procedure_name]. Ако направим една база данни, която съдържа съхранената процедура, ток (използва името на базата данни), а след това на процедура поканата е достатъчно, за да уточни част на името: [Owner] [procedure_name], и ако името на процедурата е уникална в активната база данни, можете да използвате [. procedure_name].

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

Ако съхранената процедура изисква параметри, изпълнението на процедурите, необходими, за да определят своите ценности. Определенията на входни и изходни параметри започват със знака @, последвано от името на параметър, както и описание на нейния тип данни. Когато се обадите функция, трябва да настроите стойността на параметъра, и (по избор) и неговото име. В тези два примера, съхранена процедура от базата данни pu_info Хората работят с два параметъра - @lastname и @firstname:

- Обадете се на съхранената процедура с параметри.

ИЗПОЛЗВАНЕ Хората

GO

EXECUTE pu_info Путин, Владимир

- Обадете се на съхранената процедура с имената и стойностите

параметри.

ИЗПОЛЗВАНЕ Хората

GO

EXECUTE pu_info

@lastname = "Путин", @firstname = "Владимир"

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

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

По-долу е даден списък на някои синтаксиса при изпълнение на съхранени процедури.

• The съхранена процедура връща стойност за променлива цяло число, определено за съхраняване на кодове на връщане. Съхранената процедура трябва да съдържа върне дума със стойност (и) цяло число.

• За да се обадите на процедурата, използвайки неговия номер в групата, заяви след запетаята. Ако са групирани запомнените процедури, можете да извършвате всички от тях, просто като се посочва името на съхранената процедура, или да изберат да изпълняват специфична процедура, посочват номера му. Например, ако създадете процедурата с имената GroupedProc; GroupedRgos 1 и 2, EXEC groupedproc екип може да работи както на тези процедури, и командата EXEC groupedproc; 1 - само първата процедура. При определяне на параметрите групирани съхранени процедури за всеки параметър трябва да се дава уникално име в рамките на групата, както и стойностите на параметрите, групирани съхранени процедури могат да бъдат определени, както обикновено.

• съхранена процедура променливи са определени за да запишете настройките. Екипът ИЗПЪЛНЯВАТ дефинирани променливи с декларира дума.

Използването на процедура sp_procoption могат да бъдат етикетирани с някои съхранени процедури, за да се изпълни, когато SQL Server започва. Това дава възможност за редица задачи за подобряване на производителността, системна администрация, както и изпълнение на задачи във фонов режим. процедура Sp_procoption отнема три параметъра: @ProcName, @OptionName и @OptionValue. Ето как да изберете процедура за автоматично стартиране, за да се стартира автоматично:

УПОТРЕБА магистър

GO

EXECUTE sp_procoption

@procname = автоматично стартиране,

@optionname = стартиране,

@optionvalue = вярно

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

В допълнение, за да настроите автоматично стартиране, можете да използвате SQL Server Studio Management. За да направите това, отворете базата данни и магистър "се кликне» съхранени процедури възел. След това изберете съхранена процедура, която искате да се стартира автоматично, и то с десния бутон. Освен това, свойствата на диалоговия процедура кутия съхранява, определени в квадратчето Изпълни Когато SQL Server Стартира.

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

УПОТРЕБА магистър

- Определете дали съхранената процедура е настроен за автоматично стартиране

SELECT OBJECTPROPERTY (на_обект ( "автоматично стартиране"), "ExecIsStartup")

Изключете автоматичното включване от sp_configure съхранена процедура. По-долу операторът задава SQL Server, така че маркирани за автоматични процедури за стартиране съхранява не се изпълняват по време на следващата серия SQL:

EXECUTE sp_configure

@configname = "сканиране за стартиране PROCs", @configvalue = 0

преконфигурира

GO

Модификация на запомнена процедура

Операторът ALTER ПРОЦЕДУРА (или съкратена версия на ALTER PROC) позволява на потребителя да променя съдържанието на съхранената процедура, използвайки Query Analyzer, или онлайн инструмент команда като Osql. Синтаксис ALTER процедура е почти напълно идентичен с синтаксиса на CREATE ПРОЦЕДУРА.

заявление Value ALTER ПРОЦЕДУРА изявление вместо изтриване и създаване на "от нулата" процедура е, че ALTER ПРОЦЕДУРА запазва повечето от свойствата на процедурата (например своя идентификатор обект и набор от флагове на правата за достъп).

За да оставите опцията за криптиране, или прекомпилирате, трябва да настроите на подходящите ключови думи кодиране и / или прекомпилирате) при изпълнение на оператора ALTER ПРОЦЕДУРА.

За промяна на потребителски съхранява процедури често използваните SQL Server Management Studio и Query Analyzer.

Sp_rename съхранена процедура дава възможност за преименуване на процедура по поръчка. Следното изявление преименува съхранената процедура ByBirthday BirthdayByPersonId:

ИЗПОЛЗВАНЕ Хората

GO

EXECUTE sp_rename

@objname = 'bybirthday ", @newName =' BirthdayByPersonId",

@objtype = "обект"

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

Изтриването на съхранена процедура

За изтриване на потребителски съхранени процедури, множество процедури в същото време, или набор от процедури, групирани използване изявление DROP ПРОЦЕДУРА или неговата съкратена версия DROP PROC. Ето как можете да премахнете от народна базата данни две процедури с имена и Procedure01 Procedure02:

ИЗПОЛЗВАНЕ хора

GO

DROP ПРОЦЕДУРА procedure01, procedure02

Хората база данни - ток. При изтриване на процедура не може да се посочи името на базата данни, пълното име на процедурата е както следва: [Owner] [procedure_name] .. Когато изтриете система съхранени процедури, дефинирани от потребителя (с sp_ префикс), DROP изявление ПРОЦЕДУРА изглежда за него в текущата база данни. Ако той не е тук, за да открие процедура за дефинирани от потребителя система съхранява със същото име, моля, направете справка с базата на основни данни.

За да изтриете група на съхранени процедури, трябва да укажете името на процедурата. Използвайте отчета за DROP процедурата не може да изтрие част от групата. Например, не може да бъде отстранен от снимачната площадка на групирани процедури GroupedProc, състоящи се от процедури GroupedProc; GroupedProc 1 и 2, само на процедура GroupedProc; 1, без да се маха GroupedRgos 2. Ако искате да изтриете част от групата, ще трябва да се премахне цялата група и да се създаде необходимата процедура отново.

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

Програмиране съхранени процедури

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

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

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

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

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

ИЗПОЛЗВАНЕ Хората

GO

СЪЗДАВАНЕ НА ПРОЦЕДУРА dbo.TitleForPerson

@Title VARCHAR (80) - Това е първият входен параметър.

@PersonId Int OUTPUT, - Това е първият изход параметър.

@TitleText VARCHAR (60) OUTPUT - Това е вторият изход параметър.

AS

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

- За да проверите наличността на позиции, даден входен параметър.

SELECT @PersonId = PersonId, @ TitleText = заглавие

ОТ заглавия КЪДЕ заглавие като @Title

GO

Следното изявление изпълнява процедура TitleForPerson:

- Да се ​​обяви променливи, които получават изходните стойности на процедурата.

ДЕКЛАРИРАТ @p_PersonId INT, @t_TitleText VARCHAR (80)

EXECUTE TitleForPerson

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

@PersonId = @p_PersonId OUTPUT,

@TitleText = @t_TitleText OUTPUT,

@Title = "% Доц%" - Определете стойността на входната величина.

- Показване на стойностите на променливите, получени

- В резултат на процедурата за изпълнение.

Изберете "Title" = @t_TitleText, "PersonId" = @p_PersonId

Декларирам две променливи, които получават стойности, които се съхраняват в изходните параметри. Типове данни, които са обявени за тези променливи съвпадат с типовете данни на съответните изходни параметри. Тези променливи могат да имат същите имена като изходните параметри в съхранени процедури, тъй като променливите са местни за пакета, в който са декларирани. За по-голяма яснота, тук ние използваме имената на променливите, които са различни от имената на изходните параметри. Когато декларираме променлива тя не съответства на стойността на продукцията параметъра. Стойността на променливите са равни на стойностите на изходните параметри само след изпълнението на отчета за изпълни. След задаване на променлива стойности на параметрите изходна дума. Без него, SELECT изявление, разположен в края на опаковката, не може да покаже променливи стойности. Ние също така обърна внимание на стойността на входния параметър @ дял, което е равно на% Доц%. Тази стойност се предава и клаузата WHERE на SELECT изявление на съхранената процедура. Както и в клаузата WHERE посочено подобни ключова дума, можете да използвате заместващи символи като%. Получената заявката е конфигуриран да търси мнения, които съдържат думата "Доцент".

Ето един лесен начин на процедури за изпълнение. Това не трябва да е изрично възлага на променливата стойност на съхраняваните параметъра процедура входни или изходни променливи са обявени:

ДЕКЛАРИРАТ @p_PersonId INT, @t_TitleText VARCHAR (80)

EXECUTE TitleForPerson

"% Доц%". - Ustanavlieaet стойност на входната величина.

@p_PersonId OUTPUT, - получава първия изход параметър

@t_TitleText OUTPUT - получава втори изход параметър

- Посочете стойност на променливи, в резултат

- Процедура за изпълнение.

Изберете "Title" = @t_TitleText, "Лице Id" = @p_PersonId

GO

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

изявление RETURN и обработка на грешки

Често, основните усилия в качеството на програмиране на съхранени процедури са изразходвани за изпълнение на обработка на грешки. SQL Server осигурява функции и оператори да се справят с грешките, които възникват по време на изпълнението на процедурата. Грешките могат да бъдат разделени на две основни категории, свързани с компютри, например, когато сървърът на базата данни не е налична, и потребителя. За да се справят с грешките, които възникват по време на изпълнението на процедурите, използвани, и кодове на връщане от функция @@ грешка.

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

Помислете процедура TitleForPerson, че сме създали и се извършва в предходния параграф. Ако не линии, съответстващи на стойността на входната величина (Title @) в базата данни, процедурата се връща набор резултат, състоящ се от една стойност NULL.

Въпреки това, до потребителя визуално съобщение за липса на записи, които съответстват на заявката. В следната ситуация показва как да се променя запомнена процедура TitleForPerson да използвате отчета за връщане и създаване на по-информативно съобщение за потребителя:

ALTER ПРОЦЕДУРА dbo.TitleForPerson

@Title VARCHAR (80) - Това е първият входен параметър.

@PersonId int OUTPUT, -- Это первый выходной параметр.

@TitleText varchar(60) OUTPUT -- Это второй выходной параметр.

AS

-- Проверить, есть ли в базе данных заданные должности. Если нет,

-- выйти из процедуры и установить код возврата равным 1,

IF (SELECT COUNT(*) FROM titles WHERE title LIKE @Title) = 0

RETURN(1)

ELSE

SELECT @PersonId = PersonId, @TitleText=title

FROM titles WHERE title LIKE @Title

GO

Оператор IF , стоящий после ключевого слова AS , определяет, задан ли входной параметр при исполнении процедуры и соответствуют ли ему какие-либо записи в базе данных. Если функция COUNT возвращает 0, то код возврата устанавливается равным 1: RETURN(1) . Если функция COUNT возвращает значение, отличное от 0, то оператор SELECT делает запрос к таблице Title . В этом случае код возврата равен 0.

Чтобы задействовать коды возврата, придется перепрограммировать операторы для исполнения процедуры. В следующем примере входному параметру @Title присваивается значение Docent%;

-- Добавить переменную @r_Code дня хранения результирующего кода.

DECLARE @p_PersonId int, @t_TitleText varchar(80), @r_Code int

-- Запустить процедуру и установить @r_Code равной результату процедуры.

EXECUTE @r_Code = TitleForPerson

@PersonId = @p_PersonId OUTPUT,

@TitleText = @t_TitleText OUTPUT,

@Title = "Docent%"

-- Определить значение @r_Code и исполнить программу.

IF @r_Code = 0

SELECT "Title" = @t_TitleText,

"PersonId" = @p_PersonId,

"Return Code" = @r_Code

ELSE IF @r_Code = 1

PRINT 'No matching titles in the database. Return code-' +

CONVERT(varchar(1), @r_Code)

GO

К оператору DECLARE была добавлена новая переменная — @r_Code . Далее эта переменная хранит значение, возвращаемое оператором RETURN . Она определена как целочисленная, поскольку код возврата передается как целое число. В строке с оператором EXECUTE переменной @r_Code присваивается значение кода возврата. Переменная @r_Code содержит значение, которое возвращает хранимая процедура. Теперь вместо %Docent% для входного параметра @Title задано значение Docent% . Другими словами, оператор SELECT будет искать в таблице Titles названия, значения которых начинаются со слова «Docent» . Ниже параметров и комментария размещено условие. Сначала выполняется проверка ветви IF. Если процедура находит запись, код возврата равен 0 и выполняется оператор SELECT . Если процедура не находит ни одной соответствующей записи, переменная @r_Code равна 1 и исполняется оператор PRINT . Поскольку в базе данных может не быть должности, название которой начинается со слова «Docent» , результат процедуры определяет оператор PRINT .

Чтобы проверить, задано ли значение входного параметра @Title , необходимо установить для него значение по умолчанию и модифицировать хранимую процедуру, добавив к ней еще один условный оператор. Значение по умолчанию — мощное средство, позволяющее избегать ошибок. Если мы не установим значение параметра @Тitlе , оператор SELECT использует его значение по умолчанию. В этом случае лучше задать значение по умолчанию для входного параметра равным NULL , а в обработке кода возврата подсказать пользователю, как правильно исполнять процедуру. Для этого нужно модифицировать процедуру следующим образом:

ALTER PROCEDURE dbo.TitleForPerson

@Title varchar(80) = NULL, -- Это первый входной параметр.

@PersonId int OUTPUT, -- Это первый выходной параметр.

@TitleText varchar(60) OUTPUT -- Это второй выходной параметр.

AS

IF @Title IS NULL

RETURN(2)

ELSE IF (SELECT COUNT(*) FROM titles WHERE title LIKE @Title) = 0

RETURN(1)

ELSE

SELECT @PersonId = PersonId, @TitleText=title

FROM titles WHERE title LIKE @Title

GO

Параметру @Title присвоено значение по умолчанию NULL . Сразу после ключевого слова AS добавлен условный оператор IF . Проверка условия должна выполняться перед исполнением оператора SELECT COUNT , поскольку в противном случае при проверке условия получится TRUE , даже если значение параметра равно NULL.

При исполнении этой процедуры необходимо включить обработку кода возврата, равного 2, как показано в следующем сценарии:

DECLARE @p_PersonId int, @t_TitleText varchar(80), @r_Code int

-- Запустить процедуру и установить @r_Code равной результату процедуры.

EXECUTE @r_Code = TitleForPerson

@PersonId = @p_PersonId OUTPUT,

@TitleText = @t_TitleText OUTPUT,

@Title = "Docent%"

-- Определить значение @r_Code и исполнить программу.

IF @r_Code = 0

SELECT "Title" = @t_TitleText,

"PersonId" = @p_PersonId,

"Return Code" = @r_Code

ELSE IF @r_Code = 1

PRINT 'No matching titles in the database. Return code-' +

CONVERT(varchar(1), @r_Code)

ELSE IF @r_Code = 2 --test for a return code of 2.

PRINT 'You must add a value for @Title for this procedure to function properly. Return code=' + CONVERT(varchar(1),@r_Code)

GO

Другая важная категория ошибок, которые необходимо обнаружить, — ошибки базы данных. Функция @@ERROR позволяет выявлять несколько тысяч различных ошибок базы данных.

Она фиксирует номера ошибок по мере исполнения процедуры. Каждый номер, который возвращает функция, можно использовать для вывода сообщения, раскрывающего пользователю причины ошибки. В операторах INSERT и UPDATE часто допускают пользовательские ошибки, которые приводят к возникновению ошибок базы данных. Как правило, в этих операторах пользователь пытается ввести информацию, нарушающую целостность данных (например, недействительный идентификационный номер). Номера и описания ошибок хранятся в таблице master.dbo.sysmessages . Эти сведения можно запросить посредством оператора SELECT :

SELECT error, description from master.dbo.sysmessages

Если процедура исполнена успешно, значение функции @@ERROR равно 0. При возникновении ошибки функция @@ЕRROR возвращает номер ошибки, отличный от 0. Значение функции @@ERROR изменяется при выполнении каждого оператора Transact-SQL, так что это значение следует хранить в переменной или генерировать код возврата по завершении каждого оператора Transact-SQL. Следующий сценарий демонстрирует генерацию кода возврата при возникновении ошибки в базе данных:

ALTER PROCEDURE dbo.TitleForPerson

@Title varchar(80) = NULL, -- Это первый входной параметр.

@PersonId int OUTPUT, -- Это первый выходной параметр.

@TitleText varchar(60) OUTPUT -- Это второй выходной параметр.

AS

IF @Title IS NULL

RETURN(2)

ELSE IF (SELECT COUNT(*) FROM titles WHERE title LIKE @Title) = 0

RETURN(1)

ELSE

SELECT @PersonId = PersonId, @TitleText=title

FROM titles WHERE title LIKE @Title

-- Обработка ошибок БД SQL Server.

IF @@ERROR <> 0

RETURN(3)

GO

Процедура выполняет проверку значения @@ERROR после исполнения оператора SELECT , который возвращает результирующий набор. Это важный момент, ведь задача функции @@ERROR — проверка наличия ошибок базы данных после исполнения главной задачи хранимой процедуры.

Следующий фрагмент кода исполняет процедуру и выводит стандартное сообщение об ошибке (если она есть):

DECLARE @p_PersonId int, @t_TitleText varchar(80), @r_Code int

-- Запустить процедуру и установить @r_Code равной результату процедуры.

EXECUTE @r_Code = TitleForPerson

@PersonId = @p_PersonId OUTPUT,

@TitleText = @t_TitleText OUTPUT,

@Title = "Docent%"

-- Определить значение @r_Code и исполнить программу.

IF @r_Code = 0

SELECT "Title" = @t_TitleText,

"PersonId" = @p_PersonId,

"Return Code" = @r_Code

ELSE IF @r_Code = 1

PRINT 'No matching titles in the database. Return code-' +

CONVERT(varchar(1), @r_Code)

ELSE IF @r_Code = 2 --test for a return code of 2.

PRINT 'You must add a value for @Title for this procedure to function properly. Return code=' + CONVERT(varchar(1),@r_Code)

ELSE IF @r_Code = 3

PRINT 'There was a database error.

GO

Создав хранимую процедуру и опробовав ее в реальной СУБД, мы узнаем, какие типы ошибок допускают пользователи во время ее исполнения. Эти данные вместе со знанием результирующих кодов позволят реализовать в процедурах дополнительные условия для обработки ошибок.

Вложенные процедуры

Под вложенностью хранимых процедур понимают вызов одной хранимой процедуры из другой. Одна хранимая процедура может выполнять несколько задач, но лучше создавать более простые процедуры, которые для выполнения дополнительных задач вызывают другие хранимые процедуры. Например, хранимая процедура Procedure_A добавляет данные в существующую таблицу, а процедура Procedure_B отображает данные. После успешного добавления данных процедура Procedure_A вызывает процедуру Procedure_B . При этом для просмотра табличных данных пользователь может запустить процедуру Procedure_B , не запуская процедуру Procedure_A .

Глубина вложенности процедур достигает 32 уровней. Однако число процедур, вызываемых одной процедурой, не ограничено. Процедура также способна рекурсивно вызывать сама себя. Для вызова одной процедуры из другой служит оператор EXECUTE .


Библиографический список:

1. Браст, Э.Дж. Разработка приложений на основе Microsoft SQL Server 2005. // Э.Дж. Браст, С.Форте. – М.: «Русская редакция», 2007. – 880 с.

2. Вийера, Р. Программирование баз данных Microsoft SQL Server 2005. Базовый курс. // Р.Вийера. – М. Издательский дом «Вильямс», 2007. – 832 с.

3. Дейт, К. Введение в системы баз данных, 8-е издание. // К.Дейт. – М. Издательский дом «Вильямс», 2005. – 1328 с.

4. Коннолли, Т. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание. // Т.Коннолли, К.Бегг. – М. Издательский дом «Вильямс», 2003. – 1440 с.

5. Ролланд, Ф.Д. Основные концепции баз данных. // Ф.Д.Ролланд. – М.: Издательский дом «Вильямс», 2002. – 256 с.

6. Хендерсон, К. Профессиональное руководство по Transact-SQL. // К.Хендерсон. – СПб.: Питер, 2005. 560 с.

7. http://citforum.ru/database/sql.shtml

8. http://www.corpsite.ru/Resources/Technology/DB/

9. http://www.intuit.ru/department/database/mssqlserv2005/

10. http://www.intuit.ru/department/database/rdbdev/

11. http://www.microsoft.com/sql

12. http://www.sql.ru

<== Предишна лекция | На следващата лекция ==>
| Съхранените процедури

; Дата: 01.11.2014; ; Прегледи: 202; Нарушаването на авторските права? ;


Ние ценим Вашето мнение! Беше ли полезна публикуван материал? Да | не



ТЪРСЕНЕ:


Вижте също:



zdes-stroika.ru - Studopediya (2013 - 2017) на година. Тя не е автор на материали, и дава на студентите с безплатно образование и използва! Най-новото допълнение , Al IP: 11.102.9.24
Page генерирана за: 0.161 сек.