SQL Server: как проверить, включена ли среда CLR?

89

SQL Server 2008 - Какой простой способ проверить, включен ли clr?

магнатический
источник

Ответы:

132
SELECT * FROM sys.configurations
WHERE name = 'clr enabled'
Джейсон
источник
26
Дополнительное примечание: значение будет 1, если включено, или 0, если отключено.
Мутукумар
Это все еще актуально в SQL 2016.
Rashack
34

Проверьте config_valueрезультатыsp_configure

Вы можете включить CLR, выполнив следующее:

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'clr enabled', 1;
GO
RECONFIGURE;
GO

Статья MSDN о включении CLR

Статья MSDN о sp_configure

кодирование
источник
3
Я не думаю, что вам действительно нужно настраивать эту опцию, просто чтобы проверить, настроена ли она! Я понимаю, что там будет сказано was 0 now 1или что-то подобное, но ...
Джош М.
27

Принятый ответ требует небольшого пояснения. Строка будет там, если среда CLR включена или отключена. Значение будет 1, если включено, или 0, если отключено.

Я использую этот скрипт для включения на сервере, если опция отключена:

if not exists(
    SELECT value
    FROM sys.configurations
    WHERE name = 'clr enabled'
     and value = 1
)
begin
    exec sp_configure @configname=clr_enabled, @configvalue=1
    reconfigure
end
Ларри Смит
источник
1
EXISTS () немного быстрее, чем NOT EXISTS (). Просто дружеское замечание. ;)
clifton_h
3
в этом случае читаемость imho превосходит производительность, которая для такого однократного использования dba была бы бесконечно малой.
Ларри Смит
3
select *
from sys.configurations
where name = 'clr enabled'
грейпфрут
источник
3

Правильный результат для меня с SQL Server 2017:

USE <DATABASE>;
EXEC sp_configure 'clr enabled' ,1
GO

RECONFIGURE
GO
EXEC sp_configure 'clr enabled'   -- make sure it took
GO

USE <DATABASE>
GO

EXEC sp_changedbowner 'sa'
USE <DATABASE>
GO

ALTER DATABASE <DATABASE> SET TRUSTWORTHY ON;  

От Ошибка произошла в Microsoft .NET Framework при попытке загрузить идентификатор сборки 65675

Сайед Аболфазл Фатеми
источник
0

Это ответ @Jason, но с упрощенным выводом

SELECT name, CASE WHEN value = 1 THEN 'YES' ELSE 'NO' END AS 'Enabled'
FROM sys.configurations WHERE name = 'clr enabled'

Приведенное выше возвращает следующее:

| name        | Enabled |
-------------------------
| clr enabled | YES     |

Протестировано на SQL Server 2017

Мейсон Шмидгалл
источник