Устанавливаем MS SQL Server 2005 Express Edition

November 23rd, 2007 1 Comment »

Может показатся, что другого бесплатного сервера БД кроме MySQL на текущий момент не существует – слишком уж он распространен. Однако это не совсем верно. Даже не говоря о таких замечательных open source СУБД как Postgre, на текущий момент разработчик может сводобно получить и использовать такие “большие” системы как MS SQL Server, IBM DB2 и даже Oracle.

Самый легкий для понимания и установки, а также довольно распространенный в наших широтах, MS SQL Server 2005 Express Edition доступен на сайте Microsoft для свободного скачивания и использования. Чтобы познакомится поближе с этим зверем делаем так:

  1. Скачиваем MS SQL Server 2005 Express Edition Download
  2. Скачиваем архиполезную тулзу MS SQL Server Management Studio Express
  3. Скачиваем сопутствующие вещи (ссылки см. там же) – например .NET Framework 2.0
  4. Устанавливаем это хозяство на своей машине

Очень сложно, верно ? Отож.

С помощью Server Management Studio можно создавать и удалять базы и таблицы, просматривать данные в таблицах MSSQL, делать запросы, создавать процедуры и триггеры, управлять аккаунтами пользователя. С помощью Server Configuration Manager настраиваются сетевые соединения и прочее.

После того как базовые функции освоены, можно попробовать использовать MSSQL в связке с PHP, Coldfusion, ASP.net или чем угодно для создания веб-сайтов или desktop-приложений. Как это делать – зависит от конктретного языка, в любом случае это не сложнее чем с MySQL. Есть правда несколько ловушек куда можно угодить, делая первые шаги:

  • Супер-пользователь в SQL Server зовется не “root” а “sa”
  • Протокол TCP/IP по умолчанию отключен, посему соединится с сервером из скрипта может не получится. Чтобы активировать протокол нужно воспользоваться тулзой MS SQL Server Configuration Manager: в разделе Protocols найти TCP/IP и его свойствах на вкладке протокол поставить Yes рядом с позицией Enabled.
    SQL Server Configuration Manager
  • В отличие от прошлых версий и от MySQL, в MS SQL Server 2005 Express Edition порт не установлен жестко в конкретное значение. Поэтому если вы зовете MSSQL по стандартном порту 1433 – он вас не услышит. Узнать какой порт используется в конкретном случае можно той же тулзой MS SQL Server Configuration Manager, поле TCP Dynamic Ports на закладке IP Addresses в Свойствах (Properties) протокола TCP/IP.
  • По умолчанию, в SQL Server отключена “родная” аутентификация, и включена только Windows Authentification. Проще говоря, просто по логин-паролю в сервер не зайдешь. Чтобы включить SQL Server Authentication, зайдите тулзой MS SQL Server Management Studio Express используя Windows-аутентификацию, клацнув правой клавишей на сервере вызовите его Свойства (Properties), в закладке Security позиция Server Authentification – выставить радиобатон в позицию “SQL Server and Windows Authentication mode”
  • Лучший способ принести или унести БД целиком – сделать Detach базы данных в одном месте, и сделать Attach на другом сервере – дешево и сердито. База данных в сервере MS SQL – это один файл с расширением .mdf + файл лога .ldf (но он не требуется при переносе)
  • Если вы создали таблицу под одним пользователем (например находясь в Management Studio Express под пользователем sa), а пытаетесь работать с таблицей из PHP под другим пользователем, то таблицу вы скорее всего не увидите, поскольку они созданы в разных схемах. Под sa эта схема скорее всего называется ‘dbo’, а у пользователя – совпадает с его логином. Так что dbo.Accounts и vasya.Accounts – это две разные таблицы. Чтобы перекинуть таблицы из одной схемы в другую можно сделать одну хитрость. Запустить скрипт приведенный ниже:

    SELECT 'ALTER SCHEMA dbo TRANSFER ' + TABLE_SCHEMA + '.' + TABLE_NAME
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_SCHEMA = 'vasya'
    

    Затем скопипастить получившиеся строки в окно запроса и выполнить их все. Таблицы перейдут из схемы vasya в схему dbo.

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

Ссылки по теме:
IBM DB2 Trial Downloads
Oracle Database 10g Express Edition