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

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

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

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

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

Попробуйте вести проект базы для VS + SQL Data Tools. Там все сборки компилируются и устанавливаются автоматически, сам код сборок хранится в C# проектах. Довольно удобно.
...
Рейтинг: 0 / 0
Как узнать версию библиотеки clr скриптами TSQL
    #39735363
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_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
Как узнать версию библиотеки clr скриптами TSQL
    #39735555
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

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

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

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

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

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

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

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

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

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

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

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

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

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


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