11548

Хранимые процедуры

Лабораторная работа

Информатика, кибернетика и программирование

Хранимые процедуры 1. БД Аналог приложения на языке программирования Borland Delphi База данных Приложение Таблица поле таблицы триггер Объект свойство объект

Русский

2013-04-08

40.5 KB

3 чел.

Хранимые процедуры

1.  

БД

«Аналог» приложения на языке программирования Borland Delphi

База данных

Приложение

Таблица

поле таблицы

триггер

Объект

свойство объекта

событие объекта

Хранимая процедура

Глобальная процедура приложения

2. Общий синтаксис создания хранимой процедуры

CREATE PROC[EDURE] <Имя_процедуры>

[@<Имя_параметра> <Тип_данных_параметра>

                                    [ = <Значение_параметра_по_умолчанию>]

                                    [OUTPUT]] [ ,...n ]

AS <SQL-выражения, составляющие тело процедуры>

3. Примеры

--3.1. Хранимая процедура, возвращающая сведения о поставках деталей

CREATE PROCEDURE sp_supplies

AS

SELECT supplier_name, detail_name, supply.supply_quantity, supply_date

FROM supply JOIN supplier ON supply.supplier_id = supplier.supplier_id

JOIN detail ON supply.detail_id = detail.detail_id

--Вызов процедуры sp_supplies:

EXECUTE sp_supplies

--3.2. Хранимая процедура, возвращающая сведения о поставках деталей за определенный интервал времени

CREATE PROCEDURE sp_date_supplies @start DATETIME, @end DATETIME

AS

SELECT supplier_name, detail_name, supply.supply_quantity, supply_date

FROM supply JOIN supplier ON supply.supplier_id = supplier.supplier_id

JOIN detail ON supply.detail_id = detail.detail_id

WHERE supply_date BETWEEN @start AND @end

--Вызов процедуры sp_date_supplies:

EXEC sp_date_supplies '01.01.2008', '17.11.2008'

--или

EXEC sp_date_supplies @end = '17.11.2008', @start = '01.01.2008'

--3.3. Процедура, добавляющая сведения в таблицу деталей

CREATE PROC sp_add_detail

@name VARCHAR (50) = 'Не задано',

@weight NUMERIC (10, 2),

@mat_id INT

AS

INSERT INTO detail (detail_name, weight, material_id)

VALUES (@name, @weight, @mat_id)

--Вызов процедуры sp_add_detail:

EXEC sp_add_detail 'Подшипник', 120, 2

--или

EXEC sp_add_detail @weight = 0.2, @mat_id = 1

--3.4. Процедура, возвращающая название материала, из которого изготовлено больше всего деталей

CREATE PROCEDURE most_popular_material

@name VARCHAR (50) OUTPUT,

@quantity INT OUTPUT

AS

SELECT @name = material_name, @quantity = COUNT (detail_id)

FROM material m JOIN detail d

ON m.material_id = d.material_id

GROUP BY material_name

ORDER BY COUNT (detail_id)

--Вызов процедуры most_popular_material:

DECLARE @material VARCHAR (50),

       @quantity INT

EXEC most_popular_material

@name = @material OUTPUT,

@quantity = @quantity OUTPUT

SELECT 'Большинство деталей (' + CAST (@quantity AS VARCHAR) + ' шт.) сделано из материала ' + @material

GO

--3.5. Процедура, реализующая функцию каскадного удаления на связь между таблицами материалов и деталей

CREATE PROC sp_delete_material @material_id INT

AS

IF (NOT EXISTS (SELECT * FROM detail WHERE material_id = @material_id))

BEGIN

 DELETE FROM material WHERE material_id = @material_id

 RETURN (0)

END

ELSE

BEGIN

 DELETE FROM detail WHERE material_id = material_id

 IF (@@ERROR = 0)

  BEGIN

   DELETE FROM material WHERE material_id = @material_id

   RETURN (0)

  END

 ELSE RETURN (1)

END

--Вызов процедуры sp_delete_material:

DECLARE @result INT

EXEC @result = sp_delete_material 6

IF @result = 0

PRINT 'Материал удален успешно'

ELSE

PRINT 'Не получилось  :('

GO


 

А также другие работы, которые могут Вас заинтересовать

58918. Прикметники-антоніми 47 KB
  Мета ознайомити учнів з прикметниками із антонімічним значенням; розвивати увагу память мислення звязне мовлення учнів; розширювати словниковий запас слів; виховувати любов до праці. Що ви можете сказати про слова великої малийАнтоніми.
58919. Активні і пасивні дієприкметники. Їх творення 63 KB
  Мета: поглибити знання учнів про дієприкметники пояснити відмінність між активними й пасивними дієприкметниками правила їх творення; формувати вміння розрізняти активні і пасивні дієприкметники утворювати їх правильно писати дієприкметникові суфікси...
58920. Головні й другорядні члени речення. Зв’язок слів у реченні. Складання речень за малюнками 41.5 KB
  Мета: дати дітям поняття про головні і другорядні члени речення. Що таке речення Що виражає речення Які види речень за метою висловлювання ви знаєте Що називається розповідним реченням Які знаки ставляться в кінці розповідного речення Приклад.
58921. Загальне поняття про іменник. Іменники – назви істот і неістот 35 KB
  Мета: розширити й поглибити знання учнів про іменник як частину мови, познайомити з іменниками – назвами істот і неістот, учити розрізняти їх за характерними ознаками; розвивати вміння класифікувати предмети; розвивати мовлення...
58922. Реформи адміністративно-полiтичного управління 60—70-х років ХІХ ст. у підросійській Україні 88 KB
  Розвивати історичне мислення учнів та вміння порівнювати реформи минулого з сучасними перетвореннями сприяти критичному осмисленню минулого; виховувати у школярів громадянську свідомість дух патріотизму сприяти утвердженню демократичних ідеалів.
58923. Періодичний закон і періодична система хімічних елементів Д.І.Менделєєва. Будова атома 92.5 KB
  Мета. вдосконалювати вміння аналізувати порівнювати встановлювати причиннонаслідкові звязки застосовувати теоретичні знання для прогнозування; повторити і узагальнити основні поняття з теми закріпити вміння за електронною формулою атома...
58924. Звук (ж). Позначення його буквами «Ж», «ж» (же) 122.5 KB
  Обладнання: паперові сонечка жучки за кількістю учнів на лапках яких букви А О У И І Е малюнок сонця яке посміхається паперові промінчики сонця на кожного учня паперові бджілки 2 ілюстрації жуків хруща мармурового бронзівки золотистої плавунця...
58925. Повторення і закріплення вивчених літер українського алфавіту. Вправляння у звуко-буквенному аналізі слів 60 KB
  Мета. Продовжити роботу над звуковим аналізом слів, учити розрізняти голосні та приголосні звуки; будувати короткі зв язні висловлювання; розширювати знання учнів про квіти-первоцвіти; розвивати зв’язне мовлення;
58926. Лист. Адреса. Урок розвитку звязного мовлення у 5 класі 58 KB
  Повідомлення теми мети й завдань уроку Знаєте діти отримала нещодавно листа але від кого незрозуміло. Привіт Напесать листа до вас Змусили проблеми. Простенького листа неспроможний написати. Робота з таблицею Типи листів Листи Особисті приватні Службові офіційні...