Развертывание объектов базы данных 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
Постройте проект, выбрав в меню Построение пункт Построить <имя_проекта>.
Перед развертыванием сборки на тестовом сервере устраните все ошибки и предупреждения, полученные во время построения.
Выберите Развернуть из меню Построение. Сборка будет зарегистрирована в экземпляре 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. Создайте новый запрос, соединенный с подходящей тестовой базой данных (например, AdventureWorks).
Создайте сборку на сервере, добавив в запрос следующую инструкцию 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 запустит данный сценарий после развертывания проекта.