Поделиться через


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

Развертывание — это процесс, посредством которого распространяется завершенное приложение или модуль, который необходимо запустить на другом компьютере. С помощью Microsoft Visual Studio можно разрабатывать объекты базы данных CLR и развертывать их на тестовом сервере. Также можно компилировать управляемые объекты базы данных с файлами распространения Microsoft .NET Framework вместо Visual Studio. После компиляции сборки, содержащие объекты базы данных 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. Создайте новый запрос, соединенный с подходящей тестовой базой данных (например, AdventureWorks).

  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 запустит данный сценарий после развертывания проекта.