Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как узнать версию библиотеки clr скриптами TSQL / 15 сообщений из 15, страница 1 из 1
19.11.2018, 15:48
    #39735181
Игорь_UUS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать версию библиотеки clr скриптами TSQL
Добрый день.

В редких случаях, при обновлении БД, требуется обновить библиотеку clr, но целесообразно обновлять только в том случае, если версия библиотеки выше.

Я думаю смотреть номер версии неплохой вариант... это возможно?
...
Рейтинг: 0 / 0
19.11.2018, 15:51
    #39735182
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать версию библиотеки clr скриптами TSQL
Игорь_UUS,

попарсить clr_name в SELECT * FROM sys.assemblies. Может есть и легче способ
...
Рейтинг: 0 / 0
19.11.2018, 15:53
    #39735185
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать версию библиотеки clr скриптами TSQL
...
Рейтинг: 0 / 0
19.11.2018, 16:08
    #39735192
Игорь_UUS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать версию библиотеки clr скриптами TSQL
...
Рейтинг: 0 / 0
19.11.2018, 16:30
    #39735212
Игорь_UUS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать версию библиотеки clr скриптами TSQL
Ещё маленький вопрос про clr...

как её грузить с диска понятно, а если clr библиотека сохранена в таблице базы в виде потока данных varbinary(max)... её как то можно вытащить селектом и произвести установку?
...
Рейтинг: 0 / 0
19.11.2018, 16:46
    #39735228
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать версию библиотеки clr скриптами TSQL
...
Рейтинг: 0 / 0
19.11.2018, 16:58
    #39735234
Игорь_UUS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать версию библиотеки clr скриптами TSQL
invmИгорь_UUS,

https://docs.microsoft.com/ru-ru/sql/t-sql/statements/create-assembly-transact-sql?view=sql-server-2017
Пример Б.

хммм... не могу проверить, библиотеку ещё пишу... получается примерно так будет:

Код: sql
1.
2.
3.
CREATE ASSEMBLY HelloWorld  
    FROM (SELECT [data] FROM [test_clr])
WITH PERMISSION_SET = SAFE;  



?
...
Рейтинг: 0 / 0
19.11.2018, 17:00
    #39735236
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать версию библиотеки clr скриптами TSQL
Игорь_UUS,

Попробуйте вести проект базы для VS + SQL Data Tools. Там все сборки компилируются и устанавливаются автоматически, сам код сборок хранится в C# проектах. Довольно удобно.
...
Рейтинг: 0 / 0
19.11.2018, 23:20
    #39735363
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать версию библиотеки clr скриптами TSQL
Игорь_UUSхммм... не могу проверить, библиотеку ещё пишу... получается примерно так будет:
Код: sql
1.
2.
3.
CREATE ASSEMBLY HelloWorld  
    FROM (SELECT [data] FROM [test_clr])
WITH PERMISSION_SET = SAFE;  


?Думаю, придётся сначала считать в переменную.
Владислав КолосовИгорь_UUS,

Попробуйте вести проект базы для VS + SQL Data Tools. Там все сборки компилируются и устанавливаются автоматически, сам код сборок хранится в C# проектах. Довольно удобно.В смысле, мышкой, или там автоматически делается инсталлятор?
...
Рейтинг: 0 / 0
20.11.2018, 12:40
    #39735555
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать версию библиотеки clr скриптами TSQL
alexeyvg,

В процессе публикации базы сборки компилируются, студия создает и выполняет SQL скрипт вида CREATE ASSEMBLY FROM и сама создает команды для SQL CLR. В общем-то минимум усилий, связанных с публикацией CLR.

Проблема может возникнуть, если требуется опубликовать несколько сборок с разным уровнем безопасности, но это решается при помощи отдельного проекта и ссылки на него.
...
Рейтинг: 0 / 0
20.11.2018, 21:20
    #39735838
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать версию библиотеки clr скриптами TSQL
Владислав Колосовalexeyvg,

В процессе публикации базы сборки компилируются, студия создает и выполняет SQL скрипт вида CREATE ASSEMBLY FROM и сама создает команды для SQL CLR. В общем-то минимум усилий, связанных с публикацией CLR.

Проблема может возникнуть, если требуется опубликовать несколько сборок с разным уровнем безопасности, но это решается при помощи отдельного проекта и ссылки на него.Проблема может возникнуть, если ночью админы должны обновить базу, а у них нет никаких студий и проектов. Или или тестеры должны накатывать требуемые им версии, время от времени.

Это неудобно, что пакет должен деплоить сам программист; к тому же, у него же не может быть требуемой версии пакета, он же творит, т.е. он долже взять сорсы из базы, и скомпилить перед деплоем, и где гарантия, что он 5 раз для тестеров это сделает правильно, а 6-й раз на продакшене не ошибётся?

Опять же, админы и тестеры для деплоя должны звать всех программистов, которые когда то делали CLR? или каждый программист долже уметь деплоить то, что годы назад наваяли давно уволившиеся программисты?

В общем, если ответ на мой вопрос "нет, это невозможно", то для деплоев, хранения версий и т.д., разумнее использовать какие то другие механизмы.

Хотя намёк ТС на хранение сборок в базе тоже не вывглядит привлекательным :-)
Я бы, например, хранил в сорс-контроле скрипты с CLR в форме литералов, ИМХО это удобнее всего.
...
Рейтинг: 0 / 0
21.11.2018, 13:34
    #39736091
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать версию библиотеки clr скриптами TSQL
alexeyvg,

ну нет, при должной организации тестирования, использования настраиваемых конфигураций, системы версионирования и распределении ролей указанных проблем не возникает. Существуют мировые практики, которые как раз направлены на стандартизацию жизненного цикла проекта и они успешно применяются.

В частности, версия для размещения может поставляется в группу развертывания и экспуатации файлом, который обрабатывается процессором SQLCMD с указанием значений переменных проекта в зависимости от сервера развертывания.

Если это делать самобытно и вручную, что все прелести деплоя сборок и кода Вы уже описали. Кому-то доступа нет, кто-то не ту DLL скопировал и т.п.
...
Рейтинг: 0 / 0
21.11.2018, 18:17
    #39736339
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать версию библиотеки clr скриптами TSQL
Владислав КолосовВ частности, версия для размещения может поставляется в группу развертывания и экспуатации файлом, который обрабатывается процессором SQLCMD с указанием значений переменных проекта в зависимости от сервера развертывания.А, то есть студия может сделать самодостаточный, для создания CLR, файл, в котором "будет всё"? И этот файл нужно просто выполнять (в виндах или в сиквеле. неважно)?
...
Рейтинг: 0 / 0
21.11.2018, 21:16
    #39736413
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать версию библиотеки clr скриптами TSQL
alexeyvg,

студия может создать выходной файл который необходимо пролить через sqlcmd без необходимости что то дополнительно компилировать или держать на руках "сорцы".
...
Рейтинг: 0 / 0
22.11.2018, 19:42
    #39737125
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать версию библиотеки clr скриптами TSQL
felix_ffalexeyvg,

студия может создать выходной файл который необходимо пролить через sqlcmd без необходимости что то дополнительно компилировать или держать на руках "сорцы".Спасибо, да, посмотрел, там создаётся скрипт с литералом, очень удобно для:
alexeyvgЯ бы, например, хранил в сорс-контроле скрипты с CLR в форме литералов, ИМХО это удобнее всего.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как узнать версию библиотеки clr скриптами TSQL / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]