Microsoft SQL Server 2000: новые возможности для разработчика приложений

Наталия Новакова

В предыдущей статье "Microsoft SQL Server 2000: новые возможности для администраторов баз данных" освещались преимущества, которые предоставляет СУБД Microsoft SQL Server 2000 специалистам, разрабатывающим информационные системы на ее базе. В следующих статьях эти новшества будут рассмотрены более детально.

Среди новых возможностей Microsoft SQL Server 2000, прежде всего, хочется выделить следующие: появление новых типов данных, создание пользовательских функций, индексирование представлений и вычисляемых столбцов, новые типы триггеров, каскадные изменения данных в зависимой таблице. Рассмотрим кратко каждую из этих возможностей.

Microsoft SQL Server 7.0 позволяет работать с достаточно широким спектром типов данных: целочисленных и вещественных, символьных и текстовых, денежных и двоичных, даты и времени, специальных. Однако нашлось что добавить - в Microsoft SQL Server 2000 появился новый тип данных - bigint, предназначенный для размещения целочисленных данных в 8 байтах. Таким образом, пользователи могут хранить данные в диапазоне от -263 (-9223372036854775808) до 263 - 1 (9223372036854775807).

Проверить это достаточно легко с помощью следующего несложного примера:

declare @b1 as bigint, @b2 as bigint
set @b1 = power(cast(-2 as bigint), 63)
set @b2 = -(@b1 + 1)
select @b1 as 'Нижняя граница bigint',
@b2 as 'Верхняя граница bigint'

Наряду с такими специальными типами данных, как timestamp и uniqueidentifier, которые применялись в предшествующей версии, соответственно, для того, чтобы отследить последовательность изменения строк в таблицах в пределах БД и обеспечить уникальность данных в одном из типов репликации (merge replication), появились типы данных table и sql_variant.

Тип данных table используется только для переменных и позволяет хранить в них сложные наборы данных. Переменная типа table похожа на временную таблицу. Табличная переменная может использоваться в качестве параметра функции или хранимой процедуры. Что касается остальных манипуляций с переменными типа table, то они очень похожи на действия, выполняемые с обычными таблицами. Оператор объявления переменной типа table начинается, как и при объявлении переменных других типов с ключевого слова DECLARE, а объявление полей аналогично командам CREATE и ALTER при создании и модификации таблицы:

declare @tb table
(GID bigint identity (1000,1),
lname nvarchar(30)NOT NULL,
flname nvarchar(30)NOT NULL,
sname nvarchar(30)NOT NULL,
phone char(13) NULL)

На поля могут накладываться ограничения PRIMARY KEY, UNIQUE и NULL/ NOT NULL. Однако дополнительно нельзя назначать никакие индексы, кроме тех, которые автоматически создаются при использовании ограничений PRIMARY KEY и UNIQUE.

Объявленная с помощью табличного типа переменная может обрабатываться точно так же, как и таблица с помощью команд SELECT, INSERT, DELETE и UPDATE:

insert into @tb values ('Novakova', 'Natalie', 'E', '(812)274-1489')
select * from @tb

В этой ситуации нельзя применять операции массового копирования SELECT … INTO и INSERT … EXEC, что приводит к необходимости последовательного заполнения таблицы записями.

Поля таблицы не могут сами быть типа TABLE, а значит, вложенные таблицы неприменимы. Табличные переменные нельзя применять в операторах DDL: DROP TABLE, ALTER TABLE, TRUNCATE TABLE.

Тип данных sql_variant дает возможность хранить значения любых других скалярных типов данных за исключением text, ntext, image и timestamp.

declare @y as sql_variant, @z as sql_variant
select @y = 2, @z =3
select cast(@y as int)* cast (@z as int)

Этот тип данных может применяться как для локальных переменных, так и для столбцов таблиц. Кроме целочисленных данных, в столбце типа sql_variant можно хранить строковые величины и значения с датой и временем.

Теперь несколько слов о том, как с минимальными затратами времени научиться не только создавать информационные системы на основе предлагаемых Microsoft технологий, но и делать это максимально эффективно.

Авторизованные учебные центры Mirosoft предлагают курсы официальной программы Mirosoft, которые нацелены как на подготовку специалистов-новичков, так и на ускоренное освоение опытными разработчиками особенностей новых инструментов.

На рисунке изображена последовательность курсов, предлагаемых специалистам, впервые ступившим на стезю разработки приложений с помощью Microsoft SQL Server. Первый курс предназначен новичкам в работе с SQL, второй курс будет полезен и тем, кому уже приходилось сталкиваться с администрированием Microsoft SQL Server, а вот третий курс, действительно, будет полезен всем специалистам: как новичкам, так и профессионалам.

Работа с Microsoft SQL Server 2000 с помощью запросов Transact-SQL

Двухдневный курс 2071 представляет собой введение в формирование запросов к БД SQL-сервера на языке программирования Transact-SQL.

Рассматриваются следующие темы:

  • Введение в язык Transact-SQL.
  • Использование средств формирования запросов.
  • Извлечение данных.
  • Группировка и объединение данных.
  • Слияние нескольких таблиц.
  • Работа с подзапросами.
  • Модификация данных.
  • Использование полнотекстовых индексов.
  • Введение в объекты программирования.

Администрирование БД Microsoft SQL Server 2000

Пятидневный курс 2072 дает знания и необходимые навыки для инсталляции, конфигурирования и поддержки БД Microsoft SQL Server. (Курс 2071 является необходимым условием для понимания курса 2072.)

Темы:

  • Обзор SQL Server.
  • Планирование инсталляции SQL Server.
  • Управление файлами БД.
  • Управление безопасностью.
  • Выполнение административных задач.
  • Резервное копирование БД.
  • Восстановление БД.
  • Мониторинг производительности SQL Server.
  • Преобразование данных.
  • Введение в репликацию.
  • Обеспечение стабильной доступности данных.

Программирование БД Microsoft SQL Server 2000

Пятидневный курс 2073 дает знания и навыки, необходимые для программирования и создания решений на основе баз данных с использованием SQL Server 2000. (Знакомство с курсом 2071 необходимо для освоения курса 2073.)

Темы:

  • Обзор SQL Server.
  • Обзор программирования SQL Server.
  • Создание и обслуживание Databases.
  • Создание типов данных и таблиц.
  • Обеспечение целостности данных.
  • Планирование индексов.
  • Создание и поддержка индексов.
  • Реализация представлений.
  • Реализация хранимых процедур.
  • Реализация определяемых пользователем функций.
  • Реализация триггеров.
  • Программирование многосерверной системы.
  • Производительность запросов.
  • Анализ запросов с использованием графического средства SHOWPLAN.
  • Управление транзакциями и блокировками.

Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=3802