मेरे पास एक संग्रहीत प्रक्रिया है जो आईडी की पाइप सीमित सरणी की एक स्ट्रिंग लेती है और उन्हें बाहर निकाल देती है। मैं यह लेनदेन में होना चाहता हूं, इसलिए उन्हें एक समय में एक में पास नहीं करना चाहते हैं।क्या वर्चर (अधिकतम) को संग्रहीत प्रक्रिया तर्क के रूप में उपयोग करना अच्छा विचार है?
अगर मैं के रूप में varchar (max) का उपयोग में पारित तर्क के आकार को सीमित नहीं करने के लिए, होगा इस कारण समस्या है? मुझे हिट होने की सीमा दिखाई नहीं दे रही है, लेकिन मैं स्ट्रिंग पर मनमाने ढंग से सीमा अनुमान लगाने या स्थानांतरित नहीं करना चाहता हूं।
CREATE PROCEDURE myProc
@IDs varchar(max)
AS
BEGIN
...
END
GO
उपयोग कर रहे हैं अगर यह मान की एक सरल सूची है के अलावा (नहीं बहु-मान) एक्सएमएल का एक बहुत कहते हैं संचार करने के लिए अतिरिक्त डेटा (सभी टैग)। –
मैंने इस उद्देश्य के लिए XML का उपयोग करने के बारे में अन्य सुझावों को देखा है, लेकिन मैं जोड़ूंगा कि 'वर्कर (MAX)' का उपयोग करके निश्चित रूप से समस्याएं उत्पन्न नहीं होंगी। SQL सर्वर पुस्तकें ऑनलाइन [SQL सर्वर 2005 के लिए] के अनुसार अभी भी एक 'मनमानी' सीमा है (2147483647 वर्ण), लेकिन यह @ केएम के रूप में "व्यावहारिक रूप से असीमित" है। –
हाँ मैं मूल्यों की एक सूची के लिए एक्सएमएल का उपयोग करने के लिए तैयार हूं। – Kenoyer130