टेबल में समस्याग्रस्त कॉलम का आकार बढ़ाने के बाद भी मुझे वही समस्या थी।
tl; dr: संबंधित तालिका प्रकारों में मिलान स्तंभों की लंबाई भी बढ़ानी पड़ सकती है।
मेरे मामले में, त्रुटि Microsoft Dynamics CRM में डेटा निर्यात सेवा से आ रही थी, जो CRM डेटा को SQL सर्वर DB या Azure SQL DB में सिंक करने की अनुमति देता है।
एक लंबी जाँच के बाद, मैंने निष्कर्ष निकाला कि डेटा एक्सपोर्ट सेवा को टेबल-वेलिड पैरामीटर का उपयोग करना चाहिए :
आप एक अस्थायी तालिका या कई मापदंडों को बनाए बिना, एक ट्रांसेक्ट-एसक्यूएल स्टेटमेंट या रूटीन जैसे डेटा की कई पंक्तियाँ भेजने के लिए टेबल-वैल्यूड पैरामीटर का उपयोग कर सकते हैं।
जैसा कि आप ऊपर दिए गए दस्तावेज़ में देख सकते हैं, डेटा अंतर्ग्रहण प्रक्रिया बनाने के लिए तालिका प्रकार का उपयोग किया जाता है:
CREATE TYPE LocationTableType AS TABLE (...);
CREATE PROCEDURE dbo.usp_InsertProductionLocation
@TVP LocationTableType READONLY
दुर्भाग्य से, टेबल प्रकार को बदलने का कोई तरीका नहीं है, इसलिए इसे पूरी तरह से गिराया और फिर से बनाना होगा। चूंकि मेरी तालिका में 300 से अधिक क्षेत्र (300) हैं, इसलिए मैंने तालिका के कॉलम परिभाषा के आधार पर संबंधित तालिका प्रकार के निर्माण की सुविधा के लिए एक क्वेरी बनाई (बस [table_name]अपनी तालिका के नाम से प्रतिस्थापित करें):
SELECT 'CREATE TYPE [table_name]Type AS TABLE (' + STRING_AGG(CAST(field AS VARCHAR(max)), ',' + CHAR(10)) + ');' AS create_type
FROM (
SELECT TOP 5000 COLUMN_NAME + ' ' + DATA_TYPE
+ IIF(CHARACTER_MAXIMUM_LENGTH IS NULL, '', CONCAT('(', IIF(CHARACTER_MAXIMUM_LENGTH = -1, 'max', CONCAT(CHARACTER_MAXIMUM_LENGTH,'')), ')'))
+ IIF(DATA_TYPE = 'decimal', CONCAT('(', NUMERIC_PRECISION, ',', NUMERIC_SCALE, ')'), '')
AS field
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = '[table_name]'
ORDER BY ORDINAL_POSITION) AS T;
तालिका प्रकार को अपडेट करने के बाद, डेटा निर्यात सेवा ने एक बार फिर से ठीक से काम करना शुरू कर दिया! :)