SQL Server: วิธีตรวจสอบว่าเปิดใช้งาน CLR หรือไม่


คำตอบ:


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

26
หมายเหตุเพิ่มเติม: ค่าจะเป็น 1 หากเปิดใช้งานหรือ 0 หากปิดใช้งาน
Muthukumar

สิ่งนี้ยังใช้ได้ใน SQL 2016
Rashack

35

ตรวจสอบ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หรือคล้ายกัน แต่ ...
Josh M.

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 แบบ single shot เช่นนี้จะน้อยมาก
Larry Smith


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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.