Развертывание объектов базы данных CLR

Развертывание — это процесс, посредством которого распространяется завершенное приложение или модуль, который необходимо запустить на другом компьютере. С помощью среды Microsoft Visual Studio можно разрабатывать объекты базы данных среды CLR и развертывать их на тестовом сервере. Вместо среды Visual Studio управляемые объекты базы данных можно компилировать с помощью файлов распространения платформы Microsoft .NET Framework. После компиляции сборки, содержащие объекты базы данных CLR можно развернуть на тестовом сервере с помощью среды Visual Studio или инструкций Transact-SQL. Обратите внимание, что среду Visual Studio .NET 2003 нельзя использовать для программирования или развертывания в интеграции со средой CLR. SQL Server включает предварительно установленную платформу .NET Framework, и среда Visual Studio .NET 2003 не может использовать сборки .NET Framework версии 2.0.

После тестирования и проверки методов CLR на тестовом сервере их можно распространить на рабочих серверах с помощью скрипта развертывания. Скрипт развертывания можно создать вручную или с помощью среды Среда SQL Server Management Studio (см. процедуру далее в этом разделе).

Функция интеграции со средой CLR отключена в SQL Server по умолчанию, поэтому ее нужно включить, чтобы использовать сборки CLR. Дополнительные сведения см. в разделе Включение интеграции со средой CLR.

ПримечаниеПримечание

Начиная с версии SQL Server 2005 в базе данных SQL Server с уровнем совместимости 80 нельзя создавать управляемые определяемые пользователем типы, хранимые процедуры, функции, статистические функции и триггеры. Чтобы сделать эти функции интеграции со средой CLR доступными в SQL Server, необходимо при помощи хранимой процедуры sp_dbcmptlevel (Transact-SQL) задать для базы данных уровень совместимости 90.

Развертывание сборки на тестовом сервере

С помощью среды Visual Studio можно разрабатывать функции CLR, процедуры, триггеры, определяемые пользователем типы или определяемые пользователем статистические функции и развертывать их на тестовом сервере. Эти управляемые объекты базы данных также можно скомпилировать с помощью компиляторов командной строки, таких как csc.exe и vbc.exe, входящих в состав файлов распространения платформы .NET Framework. Для разработки управляемых объектов базы данных SQL Server наличие интегрированной среды разработки Visual Studio не требуется.

Убедитесь, что все ошибки и предупреждения компилятора устранены. Сборки, содержащие процедуры CLR, можно зарегистрировать в базе данных SQL Server с помощью среды Visual Studio или инструкций Transact-SQL.

ПримечаниеПримечание

Чтобы использовать среду Microsoft Visual Studio для удаленной разработки, отладки и разработки, в экземпляре SQL Server должен быть включен протокол TCP/IP. Дополнительные сведения о включении на сервере протокола TCP/IP см. в разделе Настройка клиентских сетевых протоколов.

Развертывание сборки с помощью среды Visual Studio

  1. Постройте проект, выбрав в меню Построение пункт Построить <имя_проекта>.

  2. Перед развертыванием сборки на тестовом сервере устраните все ошибки и предупреждения, полученные во время построения.

  3. Выберите Развернуть из меню Построение. Сборка будет зарегистрирована в экземпляре SQL Server и базе данных, указанной при создании проекта SQL Server в среде Visual Studio.

Развертывание сборки с помощьюTransact-SQL

  1. Выполните компиляцию сборки из исходного файла с помощью компиляторов командной строки из состава платформы .NET Framework.

  2. Для файлов с исходным кодом на языке Microsoft Visual C#:

  3. csc /target:library C:\helloworld.cs

  4. Для файлов с исходным кодом на языке Microsoft Visual Basic:

vbc /target:library C:\helloworld.vb

Эти команды запускают компилятор Visual C# или Visual Basic с использованием параметра /target, задающего создание библиотеки DLL.

  1. Перед развертыванием сборки на тестовом сервере устраните все ошибки и предупреждения, полученные во время построения.

  2. Откройте на тестовом сервере среду Среда SQL Server Management Studio. Создайте новый запрос, соединенный с подходящей тестовой базой данных (например, База данных AdventureWorks2008R2).

  3. Создайте сборку на сервере, добавив в запрос следующую инструкцию Transact-SQL.

CREATE ASSEMBLY HelloWorld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE

  1. Процедура, функция, статистическое выражение, определяемый пользователем тип или триггер должны быть созданы в экземпляре SQL Server. Если сборка HelloWorld содержит метод с именем HelloWorld в классе Procedures, в запрос можно добавить следующий код Transact-SQL для создания в SQL Server процедуры с именем hello.

CREATE PROCEDURE hello

AS

EXTERNAL NAME HelloWorld.Procedures.HelloWorld

Дополнительные сведения о создании различных типов управляемых объектов базы данных в SQL Server см. в разделах Определяемые пользователем функции среды CLR, Пользовательские статистические функции среды CLR, Определяемые пользователем типы данных CLR, Хранимые процедуры CLR и Триггеры CLR.

Развертывание сборки на рабочих серверах

После тестирования и проверки CLR-объектов базы данных на тестовом сервере их можно распространить на рабочих серверах с помощью сценария развертывания. Дополнительные сведения об отладке управляемых объектов базы данных см. в разделе Отладка объектов базы данных среды CLR.

Развертывание управляемых объектов базы данных аналогично развертыванию обычных объектов базы данных (таблиц, процедур Transact-SQL и т. д.). Сборки, содержащие CLR-объекты базы данных, можно развертывать на других серверах с помощью скрипта развертывания. Скрипт развертывания создается с помощью функции «Создание скриптов» среды Management Studio. Скрипт развертывания можно создать вручную или с помощью функции «Создание скриптов», после чего изменить вручную. После создания скрипта развертывания его можно запустить на других экземплярах SQL Server для развертывания управляемых объектов базы данных.

Создание скрипта развертывания с помощью функции создания сценариев

  1. Откройте среду Management Studio и соединитесь с экземпляром SQL Server, в котором зарегистрирована управляемая сборка или объект баз данных, который необходимо развернуть.

  2. В Обозревателе объектов разверните деревья <имя_сервера> и Базы данных. Щелкните правой кнопкой мыши базу данных, в которой зарегистрирован управляемый объект базы данных, и последовательно выберите пункты Задачи и Формирование сценариев. Откроется мастер скриптов.

  3. Выберите базу данных из списка и нажмите кнопку Далее.

  4. На панели Выбор параметров скрипта нажмите кнопку Далее или измените параметры и нажмите Далее.

  5. На панели Выбор типов объектов выберите тип объекта базы данных для развертывания. Нажмите кнопку Далее.

  6. Для каждого типа объектов, выбранного на панели Выбор типов объектов, присутствует область Выбор <типа>. На этой панели можно выбирать из всех экземпляров этого типа объекта базы данных, зарегистрированного в указанной базе данных. Выберите один или несколько объектов и нажмите кнопку Далее.

  7. После выбора всех нужных типов объектов базы данных появится панель Параметры вывода. Выберите вариант Вывести скрипт в файл и укажите путь к файлу. Выберите Далее. Проверьте выбранные параметры и нажмите кнопку Готово. Скрипт развертывания сохранится в указанном файле.

Скрипты, выполняемые после развертывания

Существует возможность запуска скриптов, выполняемых после развертывания.

Чтобы добавить такой скрипт, необходимо добавить файл с именем postdeployscript.sql в каталог проекта Visual Studio. Например, щелкните правой кнопкой проект в Обозревателе решений и выберите Добавить существующий объект. Добавьте файл в корневой каталог проекта, а не в папку «Тестовые скрипты».

При выполнении развертывания среда Visual Studio запустит данный скрипт после развертывания проекта.