SQL Server:如何检查CLR是否已启用?

时间:2011-01-26 13:05:04

标签: sql sql-server clr

SQL Server 2008 - 检查clr是否已启用的简单方法是什么?

6 个答案:

答案 0 :(得分:125)

SELECT * FROM sys.configurations
WHERE name = 'clr enabled'

答案 1 :(得分:33)

检查config_value

结果中的sp_configure

您可以通过运行以下命令启用CLR:

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

MSDN Article on enabling CLR

MSDN Article on sp_configure

答案 2 :(得分:26)

接受的答案需要一点澄清。如果启用或禁用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

答案 3 :(得分:3)

select *
from sys.configurations
where name = 'clr enabled'

答案 4 :(得分:1)

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;  

来自An error occurred in the Microsoft .NET Framework while trying to load assembly id 65675

答案 5 :(得分: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上测试