USE [TestDB]
GO
IF OBJECT_ID('[Test].[Employees]', 'U') IS NOT NULL
DROP TABLE [Test].[Employees]
GO
CREATE TABLE [Test].[Employees] (
[EmployeeID] [int] IDENTITY (1000,2) NOT NULL
,[FirstName] [nvarchar](50) NOT NULL
,[LastName] [nvarchar](50) NOT NULL ,[BirthDate] [date] NOT NULL )
Пример 1.5. Идентифицирующие столбцы не формируют полных последовательностей. Если вставка завершилась неудачно, то идентифицирующее значение все равно используется.
USE [TestDB]
GO
INSERT [Test].[Employees] ([FirstName],[LastName],[BirthDate])
VALUES ('John', 'Kate','1970-01-30')
--Генерируется EmployeeID 1000
GO
INSERT [Test].[Employees] ([FirstName],[LastName],[BirthDate])
VALUES ('Jane', 'Dow', '1972-03-32')
--Завершается аварийно из-за неверной даты
GO
INSERT [Test].[Employees] ([FirstName],[LastName],[BirthDate])
VALUES ('Jane', 'Dow','1972-03-30')
--Генерируется EmployeeID 1004 (1002 пропущен) GO
В SQL Server 2008 введена возможность сжатия данных в таблицах. Сжатие данных реализовано на двух уровнях: строки и страницы.
Пример 1.6. В следующей инструкции таблица настраивается на сжатие на уровне страницы.
USE [TestDB]
GO
ALTER TABLE [Test].[Employees]
REBUILD
WITH (DATA_COMPRESSION = PAGE)
Если настроить сжатие на уровне строки, SQL Server изменяет формат, применяемый для хранения строк. Этот строковый формат преобразует все типы данных в типы переменной длины. Он также не использует память для хранения значений NULL. Чем больше типов данных фиксированной длины (таких, как datetime2, int, decimal и nchar) используется в таблице, тем больше будет выигрыш от сжатия на уровне строки.
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ 1.
Создание таблиц и типов данных
Создать таблицу, которая хранит информацию о клиентах.
1. Откройте среду Microsoft SQL Server Management Studio (SSMS) и установите соединение с экземпляром сервера SQL Server 2008.
2. В окне создания запроса введите и выполните следующие инструкции SQL для создания базы данных TestDB и схемы Test.
USE master;
GO
IF DB_ID ('TestDB') IS NOT NULL DROP DATABASE TestDB;
GO
CREATE DATABASE TestDB;
GO
USE TestDB;
GO
CREATE SCHEMA Test;
GO
3. В окне запроса в базе данных TestDB создайте новую таблицу со следующими свойствами:
• Еѐ имя должно быть Customers(Клиенты).
• Она должна находиться в схеме Test.
• У неѐ должны быть столбцы.
o CustomerId (Id клиента) - целое число в диапазоне от 1 до 100 000. У этого столбца значения должны увеличиваться автоматически. Первое значение должно быть равно 1000, а затем каждая последующая строка должна получать значение, увеличенное на 1. Применить тип данных, использующий минимально необходимый объем памяти.
o Name (Имя) – строка, содержащая символы Unicode, длиной до 70 символов. o CreatedDateTime (Дата и время создания) – дата и время суток, когда клиент был добавлен в базу данных. o CreditLimit (Кредитный лимит) – точное числовое значение, допускающее до пяти знаков в дробной части и числа, меньшие 10 000 000.
• Во всех столбцах, кроме CustomerId, допускаются значения NULL.
Далее приведены правильные инструкции, но не используйте их, пока не попробуете создать таблицу самостоятельно.
USE TestDB;
GO
CREATE TABLE Test.Customers (
CustomerId INT IDENTITY(1000, 1) NOT NULL
,Name NVARCHAR(70) NULL
,CreatedDateTime DATETIME2 NULL
,CreditLimit DECIMAL(12,5) NULL )
Создать два новых типа данных, которые могут применяться для минимизации ошибок в случае использования разных типов для одного и того же вида.
1. Откройте новое окно создания запроса, введите и выполните инструкцию для использования базы данных TestDB.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.