В SQL Server 2005 имеется возможность CLR интеграции и написания своих UDF (User-Defined Functions) в дотнет сборках. VS2005 позволяет написать и продеплоить такую сборку в указанный SQL Server.
Задача — осуществить деплой такой сборки своими силами, без VS2005.
Я вижу только решение CREATE ASSEMBLY и CREATE FUNCTION для каждой UDF в этой сборке. Подсмотрено профайлером, какие запросы пинает VS2005 при деплое.
Есть ли другие варианты, более простые или совсем иные?
Если нет, то есть ли какие-то возможности выполнять CREATE FUNCTION и не генерировать при этом самому описание функции на T-SQL?
Здравствуйте, slavyancheg, Вы писали:
S>Есть ли другие варианты, более простые или совсем иные?
Можно без студии, но с помощью MS Build. На сайте есть статья, как им пользоватьсяю Единственно, я натолкнулся на ограничение (
Deploy Sql Assembly через MSBuildАвтор: _FRED_
Дата: 01.06.07
): нельзя нстроивать Permission Level
S>Если нет, то есть ли какие-то возможности выполнять CREATE FUNCTION и не генерировать при этом самому описание функции на T-SQL?
А какие сложности? Если количество процедур множится и их сигнатуры меняются, то, конечно, надо что-то придумать самим. Если процедур порядка десятка-двух, то скрипт — самое надёжное.
ЗЫ: Кросспостинг наказуем
... << RSDN@Home 1.2.0 alpha rev. 717>>
Now playing: «Тихо в лесу…»
Здравствуйте, _FRED_, Вы писали:
_FR>Здравствуйте, slavyancheg, Вы писали:
S>>Есть ли другие варианты, более простые или совсем иные?
_FR>Можно без студии, но с помощью MS Build. На сайте есть статья, как им пользоватьсяю Единственно, я натолкнулся на ограничение (Deploy Sql Assembly через MSBuildАвтор: _FRED_
Дата: 01.06.07
): нельзя нстроивать Permission Level
S>>Если нет, то есть ли какие-то возможности выполнять CREATE FUNCTION и не генерировать при этом самому описание функции на T-SQL?
_FR>А какие сложности? Если количество процедур множится и их сигнатуры меняются, то, конечно, надо что-то придумать самим. Если процедур порядка десятка-двух, то скрипт — самое надёжное.
_FR>ЗЫ: Кросспостинг наказуем
Необходимо чтобы програмка принимала сборку и разварачивала сборку и ее функции в БД. Но написать программу времени не хватает, вот и ишем какие нибудь уже имеющиеся средства.
Здравствуйте, slavyancheg, Вы писали:
S>Задача — осуществить деплой такой сборки своими силами, без VS2005.
можно.
более того я даже не знаю как это можно сделать с помошью VS2005 (ну разве что откомпилировать)
1. написать (своими силами) и откомпилировать/создать assembly при помощи VS2005 (напр. MyUDF1.dll)
2. скопировать своими силами MyUDF1.dll на сервер
3. своими силами запустить скрипт (см. ниже)
примечание. #1 создать DLL можно без VS2005 — откомпилировать из командной строки
вот пример для аггрегатной функции:
CREATE ASSEMBLY MyAgg FROM 'C:\MyUDFs\MyUDF1.dll'
GO
CREATE AGGREGATE MyUDF1 (@input varchar(200)) RETURNS varchar(max)
EXTERNAL NAME MyUDF1.[MyUDFs.MyUDF1]
go
EXEC sp_configure 'show advanced options' , '1';
go
reconfigure;
go
EXEC sp_configure 'clr enabled' , '1'
go
reconfigure;
в общем все только своими силами