आप सिस्टम कैटलॉग को अपडेट नहीं कर सकते, ठीक वैसे ही जैसे त्रुटि संदेश में कहा गया है। आप SQL Server 2000 के बाद से ऐसा करने में सक्षम नहीं हैं, और यहां तक कि उन चरवाहे दिनों में भी यह शायद ही कभी एक अच्छा विचार था। जिस तरह से आपको यह करने की ज़रूरत है, जैसे गॉर्डन ने कहा, असेंबली बदलें
. अगर आपके पास अपडेट करने के लिए केवल एक असेंबली है:
ALTER ASSEMBLY [assembly name] WITH PERMISSION_SET = EXTERNAL_ACCESS;
यदि आपके पास एकाधिक हैं, तो आप गतिशील SQL का उपयोग करके एक स्क्रिप्ट उत्पन्न कर सकते हैं:
DECLARE @sql NVARCHAR(MAX) = N'';
SELECT @sql += N'ALTER ASSEMBLY ' + QUOTENAME(name)
+ ' WITH PERMISSION_SET = EXTERNAL_ACCESS;
'
FROM sys.assemblies WHERE assembly_id = <someInt>; -- or IN (<some range>)
PRINT @sql;
-- EXEC sp_executesql @sql;
यदि आपने कोई विशिष्ट assembly_id
प्रदान किया है, तो मुझे नहीं लगता कि आपको Microsoft असेंबली को फ़िल्टर करने की आवश्यकता है ।