Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 помогите решить задачку на Transact/SQL  [new]
auradron
Member

Откуда:
Сообщений: 15
Рис. 1 – Структура БД.
1.Создать базу данных по схеме представленной на рисунке 1. Поля Balance и sum определить типом float, где поле Balance является разностью сумм полей sum, таблиц Credit и Debit.
2.Для таблиц Debit и Credit создать триггеры на добавление. В коде триггера реализовать изменение поля Balance в соответствие с вновь введенными данными.
3.Для таблиц Debit и Credit создать тригеры наОбнавление. В коде триггера реализовать изменение поля Balance в соответствие с измененными данными.
4.Для таблиц Debit и Credit создать триггеры на удаление. В коде триггера реализовать изменение поля Balance в соответствие с вновь введенными данными.
5.Для каждой таблицы создать триггер, выполняющий автоматическое формирование первичного ключа. Для трех таблиц БД создать триггер для журнализации изменения данных. Журнализация должна вестись в общем журнале для всех трех таблиц.
6.Создать представление, объединяющее не менее двух таблиц. Создать триггер типа Instead Of , распределяющий добавляемые(изменяемые) данные по базовым таблицам

Вот моя реализация не полная. Помогите дополнить.

USE [laba]
GO
CREATE TABLE [dbo].[Man](
[id] [int] NOT NULL,
[Name] [nchar](50) NULL,
[Balance] [float] NULL,
CONSTRAINT [PK_Man] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Credit] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Credit](
[id] [int] NOT NULL,
[id_man] [int] NOT NULL,
[name] [nchar](50) NULL,
[summa] [float] NULL,
CONSTRAINT [PK_Credit] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Debit] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Debit](
[id] [int] NOT NULL,
[id_man] [int] NOT NULL,
[name] [nchar](50) NULL,
[summa] [float] NULL,
CONSTRAINT [PK_debit] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: ForeignKey [FK_Credit_Man] ******/
ALTER TABLE [dbo].[Credit]
WITH CHECK
ADD CONSTRAINT [FK_Credit_Man] FOREIGN KEY([id_man])
REFERENCES [dbo].[Man] ([id])
GO
ALTER TABLE [dbo].[Credit]
CHECK CONSTRAINT [FK_Credit_Man]
GO
/****** Object: ForeignKey [FK_debit_Man] ******/
ALTER TABLE [dbo].[Debit]
WITH CHECK
ADD CONSTRAINT [FK_debit_Man] FOREIGN KEY([id_man])
REFERENCES [dbo].[Man] ([id])
GO
ALTER TABLE [dbo].[Debit]
CHECK CONSTRAINT [FK_debit_Man]
GO
заранее благодарен!

К сообщению приложен файл. Размер - 0Kb
23 окт 09, 16:08    [7830881]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
auradron


Вот моя реализация не полная. Помогите дополнить.

Неполная ??? Да тут вообще нет никакой реализации поставленных задач.
23 окт 09, 16:11    [7830911]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
Да... и не ходите туда работать... балансы вам будет тяжело сводить...
23 окт 09, 16:17    [7830959]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
buser
Да... и не ходите туда работать... балансы вам будет тяжело сводить...


Так это лаба в инсте. Какой работать?
23 окт 09, 16:19    [7830986]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
auradron,

Эээ, а где тригеры?
23 окт 09, 16:20    [7830988]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
--__Александр__--
buser
Да... и не ходите туда работать... балансы вам будет тяжело сводить...


Так это лаба в инсте. Какой работать?

На лабах дают такие задачи ?
"5.Для каждой таблицы создать триггер, выполняющий автоматическое формирование первичного ключа. Для трех таблиц БД создать триггер для журнализации изменения данных. Журнализация должна вестись в общем журнале для всех трех таблиц."
23 окт 09, 16:20    [7830991]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
CmeTanka
Member [заблокирован]

Откуда: Рашен Федерэйшен
Сообщений: 2272
Прошаренный чувак, чё тут скажешь. Наклепал табличек, типа всё почти сделано, только помогите немножко...
23 окт 09, 16:53    [7831234]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
auradron
Member

Откуда:
Сообщений: 15
ребят я не профан вот и спрашиваю как сделать!
23 окт 09, 16:56    [7831254]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
auradron
ребят я не профан вот и спрашиваю как сделать!

Делают обычно с помощью рук и головы. Ну еще утилит.
С какой конкретно проблемой вы сталкнулись ?
23 окт 09, 16:58    [7831276]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
deto4ka
Member

Откуда: Пушкин
Сообщений: 215
Автор топика,
прежде чем писать незнакомое слово, посмотри его значение. :)
Если ты не профан - должен сам справиться.
http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%84%D0%B0%D0%BD
23 окт 09, 17:00    [7831290]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
auradron
Member

Откуда:
Сообщений: 15
не могу понять как реализовать поле поле Balance которое является разностью сумм полей sum, таблиц Credit и Debit.
23 окт 09, 17:00    [7831292]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
auradron
Member

Откуда:
Сообщений: 15
deto4ka,
будем прерикаться или помогать?
23 окт 09, 17:02    [7831306]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
auradron
не могу понять как реализовать поле поле Balance которое является разностью сумм полей sum, таблиц Credit и Debit.

Т.е. вы не знаете какой командой производить арифметические действия ? Или какой командой выбирать значения полей ? Или какой командой изменять их ?
23 окт 09, 17:02    [7831308]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
auradron
Member

Откуда:
Сообщений: 15
Glory,

мне непонятно как это реализовать в sql!
23 окт 09, 17:03    [7831317]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36800
auradron
Glory,

мне непонятно как это реализовать в sql!
Ну книжку купите, справку почитайте. Станет понятнее.

Сообщение было отредактировано: 23 окт 09, 17:04
23 окт 09, 17:04    [7831320]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
auradron
Glory,

мне непонятно как это реализовать в sql!

1. Изучить синтасис tsql
2. Реализовать
23 окт 09, 17:04    [7831324]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
auradron
Member

Откуда:
Сообщений: 15
хоть я и не глупый просто сложно понять пока еще.
23 окт 09, 17:04    [7831328]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
auradron
хоть я и не глупый просто сложно понять пока еще.

Ок. Перечислите 4 команды SQL, которые вы знаете
23 окт 09, 17:05    [7831336]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
deto4ka
Member

Откуда: Пушкин
Сообщений: 215
В справочниках хорошо написано. Изучайте, это не вредно.
23 окт 09, 17:05    [7831341]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
auradron
Member

Откуда:
Сообщений: 15
я вообще все методом проб и ошибок изучаю! Ну вообще с синтаксисом я знаком! меня только вот в 1 пункте затруднение! и как в коде тригера это реализовать!
23 окт 09, 17:09    [7831369]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36800
auradron
я вообще все методом проб и ошибок изучаю! Ну вообще с синтаксисом я знаком! меня только вот в 1 пункте затруднение! и как в коде тригера это реализовать!
Ну на здоровье, кто же против. Идите дальше изучайте. Рано или поздно оно изучится и напишется.
23 окт 09, 17:10    [7831378]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
auradron
я вообще все методом проб и ошибок изучаю! Ну вообще с синтаксисом я знаком! меня только вот в 1 пункте затруднение! и как в коде тригера это реализовать!

И как же вы попробовали это сделать ?
23 окт 09, 17:11    [7831380]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
auradron
Member

Откуда:
Сообщений: 15
я по поводу реализации изменения поля balance в тригерах не понимаю как!
23 окт 09, 17:11    [7831383]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
auradron
Member

Откуда:
Сообщений: 15
Создание триггера
CREATE TRIGGER <Schema_Name, sysname, Schema_Name>.<Trigger_Name, sysname, Trigger_Name>
ON <Schema_Name, sysname, Schema_Name>.<Table_Name, sysname, Table_Name>
AFTER INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for trigger here

END
23 окт 09, 17:12    [7831393]     Ответить | Цитировать Сообщить модератору
 Re: помогите решить задачку на Transact/SQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
auradron
я по поводу реализации изменения поля balance в тригерах не понимаю как!

Начните с простого. Напишите запрос, который просто вернет вам нужные данные
23 окт 09, 17:12    [7831396]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить