5
पर उपयोगकर्ता परिभाषित तालिका पैरामीटर पास करने के लिए मुझे गतिशील एसक्यूएल, sp_executesql में "उपयोगकर्ता परिभाषित तालिका प्रकार" पैरामीटर को पारित करने में सहायता चाहिए।गतिशील एसक्यूएल, sp_executesql
DECLARE @str as nvarchar(Max)
DECLARE @IDLIST AS ListBigintType /* this is my table type, with ItemId column (bigint)*/
INSERT INTO @IDLIST
SELECT DISTINCT bigintid FROM tableWithBigInts WITH(NOLOCK)
set @str ='select * from SomeTable where ID in (select ItemId from @IdTable) '
EXEC sp_executesql @str , @ParamDefs, @IdTable = @IDLIST
इसे कहते हैं:
यहाँ मेरी नमूना कोड तालिका चर घोषित करना चाहिए "@IdTable"
मैं इस काम करने के लिए नहीं मिल सकता है, और सम्मिलित साथ एक समाधान नहीं मिल सकता है (bigints के लिए) या तो क्योंकि परिणाम 8000 से अधिक वर्ण होंगे।
मैं माफी चाहता हूँ, मैं लिखने के लिए कि जब मैं प्रश्न यहाँ लिख रहा हूँ भूल गया:
यहाँ एक पूर्ण काम कर उदाहरण है। क्वेरी में पहले से ही यह है। लेकिन यह वही त्रुटि देता है। –
एक कामकाजी उदाहरण जोड़ा गया। अपने डेटाबेस के लिए compatiblity स्तर की जांच करें, 'select name, compatibility_level sys.databases' से? SQL सर्वर 2005+ के लिए इसे 90 या उच्चतर पर सेट किया जाना चाहिए। – Andomar
मेरे द्वारा पोस्ट किया गया उदाहरण मेरी स्थापना पर ठीक चलाता है, इसलिए मुझे यकीन है कि आप 'sp_executesql' – Andomar