User-Defined Functions
От: slavyancheg  
Дата: 15.08.07 11:14
Оценка:
В SQL Server 2005 имеется возможность CLR интеграции и написания своих UDF (User-Defined Functions) в дотнет сборках. VS2005 позволяет написать и продеплоить такую сборку в указанный SQL Server.
Задача — осуществить деплой такой сборки своими силами, без VS2005.
Я вижу только решение CREATE ASSEMBLY и CREATE FUNCTION для каждой UDF в этой сборке. Подсмотрено профайлером, какие запросы пинает VS2005 при деплое.

Есть ли другие варианты, более простые или совсем иные?
Если нет, то есть ли какие-то возможности выполнять CREATE FUNCTION и не генерировать при этом самому описание функции на T-SQL?
Re: User-Defined Functions
От: _FRED_ Черногория
Дата: 15.08.07 11:33
Оценка:
Здравствуйте, 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: «Тихо в лесу…»
Help will always be given at Hogwarts to those who ask for it.
Re[2]: User-Defined Functions
От: slavyancheg  
Дата: 15.08.07 12:24
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, slavyancheg, Вы писали:


S>>Есть ли другие варианты, более простые или совсем иные?


_FR>Можно без студии, но с помощью MS Build. На сайте есть статья, как им пользоватьсяю Единственно, я натолкнулся на ограничение (Deploy Sql Assembly через MSBuild
Автор: _FRED_
Дата: 01.06.07
): нельзя нстроивать Permission Level


S>>Если нет, то есть ли какие-то возможности выполнять CREATE FUNCTION и не генерировать при этом самому описание функции на T-SQL?


_FR>А какие сложности? Если количество процедур множится и их сигнатуры меняются, то, конечно, надо что-то придумать самим. Если процедур порядка десятка-двух, то скрипт — самое надёжное.


_FR>ЗЫ: Кросспостинг наказуем


Необходимо чтобы програмка принимала сборку и разварачивала сборку и ее функции в БД. Но написать программу времени не хватает, вот и ишем какие нибудь уже имеющиеся средства.
Re: User-Defined Functions
От: ilya_ny  
Дата: 19.08.07 13:57
Оценка:
Здравствуйте, 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;



в общем все только своими силами
Re[2]: User-Defined Functions
От: slavyancheg  
Дата: 20.08.07 03:55
Оценка:
Спасибо! Задача уже решена.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.