मेरे अनुभव को रूपांतरित करने के साथ जोड़ना चाहते थे। मेरे पास text
प्राचीन Linq2SQL कोड में कई फ़ील्ड थे। यह text
अनुक्रमणिका में मौजूद स्तंभों को ONLINE के पुनर्निर्माण के लिए अनुमति देना था ।
पहले मैं वर्षों से लाभ के बारे में जानता हूं, लेकिन हमेशा यह माना जाता है कि परिवर्तित करने का मतलब कुछ डरावने लंबे प्रश्न होंगे, जहां SQL सर्वर को टेबल को फिर से बनाना होगा और सब कुछ कॉपी करना होगा, अपनी वेबसाइटों को नीचे लाना होगा और मेरी दिल की धड़कन बढ़ जाएगी।
मुझे यह भी चिंता थी कि अगर यह कॉलम प्रकार का सत्यापन कर रहा है तो Linq2SQL त्रुटियों का कारण बन सकता है।
हालाँकि, रिपोर्ट करने में प्रसन्नता है कि ALTER कमांड ने तुरंत लौटा दिया - इसलिए वे निश्चित रूप से केवल टेबल मेटाडेटा बदल रहे हैं। तालिका में होने के लिए <8000 वर्ण डेटा वापस लाने के लिए कुछ ऑफ़लाइन कार्य हो सकते हैं, लेकिन ALTER कमांड तत्काल था।
रूपांतरण की आवश्यकता वाले सभी कॉलम खोजने के लिए मैंने निम्नलिखित भाग किया:
SELECT concat('ALTER TABLE dbo.[', table_name, '] ALTER COLUMN [', column_name, '] VARCHAR(MAX)'), table_name, column_name
FROM information_schema.columns where data_type = 'TEXT' order by table_name, column_name
SELECT concat('ALTER TABLE dbo.[', table_name, '] ALTER COLUMN [', column_name, '] NVARCHAR(MAX)'), table_name, column_name
FROM information_schema.columns where data_type = 'NTEXT' order by table_name, column_name
इससे मुझे प्रश्नों की एक अच्छी सूची मिली, जिसे मैंने अभी चुना और एक नई विंडो में कॉपी किया। जैसे मैंने कहा - यह चलाना तत्काल था।
Linq2SQL बहुत प्राचीन है - यह एक डिज़ाइनर का उपयोग करता है जिसे आप टेबल पर खींचते हैं। ईएफ कोड के लिए स्थिति पहले से अधिक जटिल हो सकती है लेकिन मैंने अभी तक इससे निबटा नहीं है।