Развертывание объектов базы данных 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
Постройте проект, выбрав в меню Построение пункт Построить <имя_проекта>.
Перед развертыванием сборки на тестовом сервере устраните все ошибки и предупреждения, полученные во время построения.
Выберите Развернуть из меню Построение. Сборка будет зарегистрирована в экземпляре SQL Server и базе данных, указанной при создании проекта SQL Server в среде Visual Studio.
Развертывание сборки с помощьюTransact-SQL
Выполните компиляцию сборки из исходного файла с помощью компиляторов командной строки из состава платформы .NET Framework.
Для файлов с исходным кодом на языке Microsoft Visual C#:
csc /target:library C:\helloworld.cs
Для файлов с исходным кодом на языке Microsoft Visual Basic:
vbc /target:library C:\helloworld.vb
Эти команды запускают компилятор Visual C# или Visual Basic с использованием параметра /target, задающего создание библиотеки DLL.
Перед развертыванием сборки на тестовом сервере устраните все ошибки и предупреждения, полученные во время построения.
Откройте на тестовом сервере среду Среда SQL Server Management Studio. Создайте новый запрос, соединенный с подходящей тестовой базой данных (например, База данных AdventureWorks2008R2).
Создайте сборку на сервере, добавив в запрос следующую инструкцию Transact-SQL.
CREATE ASSEMBLY HelloWorld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE
- Процедура, функция, статистическое выражение, определяемый пользователем тип или триггер должны быть созданы в экземпляре 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 для развертывания управляемых объектов базы данных.
Создание скрипта развертывания с помощью функции создания сценариев
Откройте среду Management Studio и соединитесь с экземпляром SQL Server, в котором зарегистрирована управляемая сборка или объект баз данных, который необходимо развернуть.
В Обозревателе объектов разверните деревья <имя_сервера> и Базы данных. Щелкните правой кнопкой мыши базу данных, в которой зарегистрирован управляемый объект базы данных, и последовательно выберите пункты Задачи и Формирование сценариев. Откроется мастер скриптов.
Выберите базу данных из списка и нажмите кнопку Далее.
На панели Выбор параметров скрипта нажмите кнопку Далее или измените параметры и нажмите Далее.
На панели Выбор типов объектов выберите тип объекта базы данных для развертывания. Нажмите кнопку Далее.
Для каждого типа объектов, выбранного на панели Выбор типов объектов, присутствует область Выбор <типа>. На этой панели можно выбирать из всех экземпляров этого типа объекта базы данных, зарегистрированного в указанной базе данных. Выберите один или несколько объектов и нажмите кнопку Далее.
После выбора всех нужных типов объектов базы данных появится панель Параметры вывода. Выберите вариант Вывести скрипт в файл и укажите путь к файлу. Выберите Далее. Проверьте выбранные параметры и нажмите кнопку Готово. Скрипт развертывания сохранится в указанном файле.
Скрипты, выполняемые после развертывания
Существует возможность запуска скриптов, выполняемых после развертывания.
Чтобы добавить такой скрипт, необходимо добавить файл с именем postdeployscript.sql в каталог проекта Visual Studio. Например, щелкните правой кнопкой проект в Обозревателе решений и выберите Добавить существующий объект. Добавьте файл в корневой каталог проекта, а не в папку «Тестовые скрипты».
При выполнении развертывания среда Visual Studio запустит данный скрипт после развертывания проекта.