2016-12-13 6 views
5

मैं SQL सर्वर के लिए SQLCLR आधारित संग्रहीत प्रक्रियाओं को बनाना चाहता हूं। जैसा कि आप जानते हैं कि मैं .NET ढांचे के कई संस्करणों के खिलाफ एक डीएलएल बना सकता हूं। मुझे कोई संदर्भ नहीं मिल रहा है जो वर्णन करता है कि SQL सर्वर का कौन सा संस्करण .NET ढांचे का कौन सा संस्करण समर्थन करता है। क्या कोई मुझे सही दिशा इंगित करने में मदद कर सकता है?.NET फ्रेमवर्क SQL सर्वर का कौन सा संस्करण समर्थन करता है?

+1

[यह लेख] (https: // blogs.msdn.microsoft.com/dohollan/2010/07/08/sql-server-2008-r2-sqlclr-net-framework-version/) शायद आपके प्रश्न का उत्तर देगा और अधिक। – dotNET

+1

@ डॉटनेट यह आलेख गुमराह कर सकता है अगर कोई सीएलआर (और इसके संस्करण) और .NET Framework (और उसके संस्करण) के बीच अंतर और संबंध दोनों के बारे में अवगत नहीं है। मैं संस्करणों के बारे में बहुत स्पष्ट होने का उत्तर पोस्ट करूंगा। –

उत्तर

13

स्पष्ट होने के लिए, सीएलआर के एक संस्करण में आमतौर पर .NET Framework के कई संस्करण होते हैं जो यह काम करता है। हालांकि, .NET Framework का एक संस्करण, केवल सीएलआर के एक विशिष्ट संस्करण के साथ काम करता है। उदाहरण के लिए, सीएलआर संस्करण 2.0 .NET Framework संस्करण 2.0, 3.0, और 3.5 के साथ काम करता है, जबकि सीएलआर संस्करण 4.0 .NET Framework (यानी 4.0, 4.5 [.x], 4.6 [के सभी 4.x संस्करणों के साथ काम करता है। एक्स], 4.7 [.x], आदि)। फ्रेमवर्क संस्करण संबंधों के लिए सीएलआर संस्करण के चार्ट को देखने के लिए, .NET Framework Versions and Dependencies के लिए एमएसडीएन पृष्ठ देखें।

एसक्यूएलसीएलआर कोड के संबंध में, SQL सर्वर केवल सीएलआर के एक संस्करण के साथ काम करता है, और विशिष्ट संस्करण SQL सर्वर के संस्करण पर निर्भर करता है। एसक्यूएल सर्वर 2005, 2008, और 2008 आर 2 केवल सीएलआर संस्करण 2 के साथ काम करते हैं। चूंकि सीएलआर संस्करण 2 केवल .NET Framework संस्करण 2.0, 3.0, और 3.5 के साथ काम करता है, इसका मतलब है कि SQL Server 2005, 2008, और 2008 R2 केवल साथ काम करता है। नेट फ्रेमवर्क संस्करण 2.0, 3.0, और 3.5।

बेशक, SQL सर्वर 2005 की सीएलआर एकीकरण सुविधा (इसका प्रारंभिक संस्करण) .NET Framework संस्करण 2.0 (जैसा कि उस समय उपलब्ध था) के आसपास बनाया गया था, इसलिए इसमें कुछ नए पुस्तकालय हैं। नेट फ्रेमवर्क संस्करण 3.0 और 3.5 जो SQL Server 2005 में मैन्युअल रूप से आयात किए बिना काम नहीं करते हैं (यानी सिस्टम। कोर और System.Xml.Linq)। उसी पंक्तियों के साथ, SQL सर्वर 2012, 2014, 2016, और 2017 स्थिर रूप से सीएलआर संस्करण 4 से जुड़े हुए हैं, जो .NET Framework संस्करण 4.0, 4.5 [.x], 4.6 [.x], और 4.7 [.x] के साथ काम करता है। ।

के साथ जानकारी के संबंध दोनों System.Environment.Version (.NET कोड में) और SELECT [version] FROM sys.dm_clr_properties; से लौटे, वे, CLR संस्करण रिपोर्ट कर रहे हैं .नेट फ्रेमवर्क संस्करण नहीं। इसलिए सावधान रहें कि उन दो चीजों को 2.0 या 4.0 रिपोर्टिंग को भ्रमित न करें, जिसका अर्थ है कि आप केवल फ्रेमवर्क संस्करण 2.0 या 4.0 का उपयोग कर सकते हैं।

और सौभाग्य से, पिछली संगतता के कारण, सीएलआर 2 फ्रेमवर्क संस्करणों (2.0, 3.0, और 3.5) के खिलाफ संकलित कोड SQL सर्वर 2012 और नए में पुन: संकलित किए जाने के बिना चलाएगा, भले ही वे सीएलआर संस्करण 4 पर हों

तो, आप आम तौर पर 2.0 के लक्ष्य फ्रेमवर्क संस्करण का उपयोग करने में गलत नहीं हो सकते हैं, लेकिन आप निश्चित रूप से 2.0 से परे फ्रेमवर्क संस्करणों का उपयोग कर सकते हैं।

विकासशील SQLCLR कोड पर एक अधिक गहराई से देखने के लिए, निम्न आलेख (और सामान्य में श्रृंखला) है, जो मैंने लिखा की जाँच:

Stairway to SQLCLR Level 5: Development (Using .NET within SQL Server)

+0

धन्यवाद @srutzky। आपका मतलब क्या है "SQL सर्वर 2005 में केवल .NET Framework संस्करण 2.0 शामिल है"? –

+0

@OgrishMan हाँ, मुझे यकीन नहीं था कि यह कैसे सबसे अच्छा शब्द है। मैं बस उम्मीदवार स्पष्ट रूप से अद्यतन करने के लिए अद्यतन किया। असल में, दो .NET Framework लाइब्रेरीज़ हैं जो .NET Framework 2.0 में मौजूद नहीं थीं, और इसलिए उन्हें "समर्थित .NET Framework लाइब्रेरीज़" सूची में शामिल नहीं किया जा सका।लेकिन, जब वे SQL Server 2008 को कोड किया जा रहा था, तब वे मौजूद थे, इसलिए वे "समर्थित" सूची में उन 2 पुस्तकालयों को जोड़ने में सक्षम थे। –

संबंधित मुद्दे

 संबंधित मुद्दे