При помощи пользовательского меню Windows запустите утилиту SQL Server Management Studio, после чего на панели Object Explorer в древовидной структуре раскройте папку Databases.
С помощью команды меню File►Open►File загрузите сценарий из файла D:\Work\X7230ХХХ\script.sql в окно Query.
Выполните сценарий, нажав на панели инструментов кнопку Execute (или клавишу F5). В результате будет создана база данных Склад_ХХХ.
Обновите данные на панели Object Explorer. Для этого используйте команду Refresh в контекстном меню папки Databases или соответствующую кнопку в верхней части панели. В результате база данных Склад_ХХХ станет видимой на панели Object Explorer.
Далее продолжите работу с базой данных Склад_ХХХ, последовательно добавляя в сценарий, выделяя подсветкой и выполняя приведенные ниже команды или пакеты языка Transact-SQL (помечены стрелками и ).
1. Вставка новой строки в таблицу базы данных. Синтаксис команды (см. [1], стр. 1122):
INSERT [ INTO] { table_name WITH ( < table_hint_limited > [ ...n ] ) | view_name | rowset_function_limited } { [ ( column_list ) ] { VALUES ( { DEFAULT | NULL | expression } [ ,...n] ) | derived_table | execute_statement } } | DEFAULT VALUES
< table_hint_limited > ::= { FASTFIRSTROW | HOLDLOCK | PAGLOCK | READCOMMITTED | REPEATABLEREAD | ROWLOCK | SERIALIZABLE | TABLOCK | TABLOCKX | UPDLOCK }
Таблица Регион
КодРегиона |
Страна |
Область |
Город |
Адрес |
Телефон |
Факс |
101 201 202 203 204 301 |
Россия Беларусь Беларусь Беларусь Беларусь Украина |
Московская
Минская
Витебская Крымская |
Королев Минск Воложин Минск Полоцк Алушта |
ул.Мира, 15 ул.Гикало, 9 ул.Серова, 11 ул.Кирова, 24 ул.Лесная, 6 ул.Франко, 24 |
387-23-04 NULL NULL 269-13-76 NULL NULL |
387-23-05 278-83-88 48-37-92 269-13-77 48-24-12 46-49-16 |
INSERT INTO Регион
VALUES (101, 'Россия', 'Московская', 'Королев', 'ул.Мира, 15',
'387-23-04', '387-23-05')
INSERT INTO Регион (КодРегиона, Область, Город, Адрес, Факс)
VALUES (201, '', 'Минск', 'ул.Гикало, 9', '278-83-88')
INSERT INTO Регион (КодРегиона, Область, Город, Адрес, Факс)
VALUES (202, 'Минская', 'Воложин', 'ул.Серова, 11', '48-37-92')
INSERT INTO Регион (КодРегиона, Область, Город, Адрес, Телефон,
Факс)
VALUES (203, '', 'Минск', 'ул.Кирова, 24', '269-13-76',
'269-13-77')
INSERT INTO Регион (КодРегиона, Область, Город, Адрес, Факс)
VALUES (204, 'Витебская', 'Полоцк', 'ул.Лесная, 6', '48-24-12')
INSERT INTO Регион
VALUES (301, 'Украина', 'Крымская', 'Алушта', 'ул.Франко, 24',
NULL, '46-49-16')
GO
Примечание. Здесь приведены различные способы использования команды INSERT, которые учитывают следующие особенности.
1). Если в строке INSERT INTO список имен столбцов опущен, то в строке VALUES необходимо указывать значения для всех столбцов, которые имеет таблица. В противном случае значения указываются только для тех столбцов, названия которых фигурируют в строке INSERT INTO.
2). Не смотря на то, что столбец Страна является обязательным (определен как NOT NULL), его имя можно не указывать в списке имен столбцов, поскольку для этого столбца определено значение по умолчанию ('Беларусь').
3). Если значение поля Область не заполняется, то нельзя использовать NULL, а нужно задать пустую строку (''), поскольку поле Область является обязательным и значение NULL в нем недопустимо.
Таблица Поставщик
КодПоставщика |
ИмяПоставщика |
УсловияОплаты |
КодРегиона |
Заметки |
123 234 345 456 567 |
ЗАО Магистраль … … … СП "Полихим" |
Предоплата … … … По факту отгрузки |
101 ... ... ... 203 |
NULL ... ... ... Постоянный поставщик |
INSERT INTO Поставщик (КодПоставщика, ИмяПоставщика, КодРегиона)
VALUES (123, 'ЗАО Магистраль', 101)
/* . . . команда вставки новой строки – сформируйте самостоятельно */
/* . . . команда вставки новой строки – сформируйте самостоятельно */
/* . . . команда вставки новой строки – сформируйте самостоятельно */
INSERT INTO Поставщик
VALUES (567, 'СП ”Полихим”', 'По факту отгрузки', 203,
'Постоянный поставщик')
GO
Таблица Клиент
ИмяКлиента |
ФИОРуководителя |
КодРегиона |
ГП ”Верас” ... ... ... ИП ”Темп” |
Прокушев Станислав Игоревич ... ... ... Васько Григорий Терентьевич |
202 ... ... ... NULL |
Примечание. В таблице Клиент столбец КодКлиента является автоинкрементным и, поэтому, его значения не приведены.
INSERT INTO Клиент
VALUES ('ГП ”Верас”', 'Прокушев Станислав Игоревич', 202)
/* . . . команда вставки новой строки – сформируйте самостоятельно */
/* . . . команда вставки новой строки – сформируйте самостоятельно */
/* . . . команда вставки новой строки – сформируйте самостоятельно */
INSERT INTO Клиент (ИмяКлиента, ФИОРуководителя)
VALUES ('ИП ”Темп”', 'Васько Григорий Терентьевич')
GO
Таблица Валюта
КодВалюты |
ИмяВалюты |
ШагОкругления |
КурсВалюты |
BYR RUR USD EUR |
Белорусские рубли Российские рубли Доллары США Евро |
1 0.01 0.01 0.01 |
1 276 9160 12450 |
INSERT INTO Валюта
VALUES ('BYR', 'Белорусские рубли', 1, 1)
INSERT INTO Валюта (КодВалюты, ИмяВалюты, КурсВалюты)
VALUES ('RUR', 'Российские рубли', 276)
INSERT INTO Валюта (КодВалюты, ИмяВалюты, КурсВалюты)
VALUES ('USD', 'Доллары США', 9160)
INSERT INTO Валюта (КодВалюты, ИмяВалюты, КурсВалюты)
VALUES ('EUR', 'Евро', 12450)
GO
Таблица Товар
КодТовара |
Наименование |
Единица Изм |
Цена |
КодВалюты |
Расфасован |
111 222 333 444 555 |
Монитор 21 дюйм … … … Винчестер HDD 120GB |
штука ... ... ... штука |
320 ... ... ... 285000 |
USD ... ... ... BYR |
Нет ... ... ... Да |
INSERT INTO Товар
VALUES (111, 'Монитор 21 дюйм', 'штука', 320, 'USD', 'Нет')
/* . . . команда вставки новой строки – сформируйте самостоятельно */
/* . . . команда вставки новой строки – сформируйте самостоятельно */
/* . . . команда вставки новой строки – сформируйте самостоятельно */
INSERT INTO Товар (КодТовара, Наименование, Цена, Расфасован)
VALUES (555, 'Винчестер HDD 120GB', 285000, 'Да')
GO
Таблица Заказ
КодКлиента |
КодТовара |
Количество |
ДатаЗаказа |
СрокПоставки |
КодПоставщика |
3 … … … ... ... ... ... … 1 |
111 … … … ... ... ... ... ... 555 |
8 … … … ... ... ... ... ... 25 |
04.09.2013 … … … ... ... ... ... ... <по умолчанию> |
14.09.2013 … … … ... ... ... ... ... <по умолчанию> |
567 … … … ... ... ... ... ... NULL |
VALUES (1, 555, 25)
GO
2. Создание представления базы данных. Синтаксис команды (см. [1], стр. 996):
CREATE VIEW [ < database_name > . ] [ < owner > . ] view_name [ ( column [ ,...n ] ) ] [ WITH < view_attribute > [ ,...n ] ] AS select_statement [ WITH CHECK OPTION ] < view_attribute > ::= { ENCRYPTION | SCHEMABINDING | VIEW_METADATA }
CREATE VIEW Запрос1 AS
SELECT TOP 100 PERCENT Товар.Наименование, Заказ.Количество,
Товар.ЕдиницаИзм, Поставщик.ИмяПоставщика
FROM Заказ
ON Заказ.КодПоставщика = Поставщик.КодПоставщика
ON Заказ.КодТовара = Товар.КодТовара
ORDER BY Товар.Наименование, Заказ.Количество DESC GO
На панели Object Explorer откройте папку Security и выберите в ней строку Logins. При этом справа на панели Summary будет представлен список регистрационных записей SQL Server. Если среди них присутствуют регистрационные записи ИмяДомена\sql1, ИмяДомена\sql2, ИмяДомена\sql3, ИмяДомена\sql4, то поочередно выделите их и удалите, выбирая в контекстном меню команду Удалить.
1. Предоставление доступа к серверу учетной записи Windows NT. Синтаксис системной хранимой процедуры (см. [1], стр. 212):
sp_grantlogin [@loginame =] 'login'
-- ИмяДомена замените конкретным именем (домена или локального компьютера)
EXEC sp_grantlogin 'ИмяДомена\sql1'
EXEC sp_grantlogin 'ИмяДомена\sql2'
EXEC sp_grantlogin 'ИмяДомена\sql3'
EXEC sp_grantlogin 'ИмяДомена\sql4'
GO
Отмена доступа к серверу учетной записи выполняется с помощью хранимой процедуры sp_droplogin, имеющей синтаксис:
sp_droplogin [ @loginame = ] 'login'
2. Добавление учетной записи в фиксированную роль сервера. Синтаксис системной хранимой процедуры (см. [1], стр. 223):
sp_addsrvrolemember [ @loginame = ] 'login' , [ @rolename = ] 'role'
EXEC sp_addsrvrolemember 'ИмяДомена\sql1', 'dbcreator'
GO
Удаление учетной записи из фиксированной роли сервера выполняется с помощью хранимой процедуры sp_dropsrvrolemember, имеющей синтаксис (см. [1], стр. 224):
sp_dropsrvrolemember [ @loginame = ] 'login' , [ @rolename = ] 'role'