नहीं में मैं इस तरह के संबंध मानचित्रण तालिका है:एसक्यूएल हटाएँ कहाँ
attributeid bigint
productid bigint
संबंधों कि किसी भी अधिक उपयोग नहीं किया जाता साफ करने के लिए, मैं सभी recors हटाना चाहते हैं जहां productid = एक्स और attributeid नहीं में (@includedIds), निम्न उदाहरण की तरह:
@attributetypeid bigint,
@productid bigint,
@includedids varchar(MAX)
DELETE FROM reltable
WHERE productid = @productid AND
attributetypeid = @attributetypeid AND
attributeid NOT IN (@includedids);
जब एक से अधिक 1 आईडी युक्त includedids परम एसक्यूएल चल रहा है - इस तरह: 25,26 - मैं एक SqlException कह:
डेटा प्रकार वर्कर को बिगिन में परिवर्तित करने में त्रुटि।
और उस के कारण निश्चित रूप से है, कि varchar (max) परम में ...
मैं अपने नष्ट बयान कैसे निर्माण करना चाहिए यह काम करने के लिए?
Sidenote: यह फ़ंक्शन SQL Server 2005 के लिए अनुकूलित नहीं है, जिसमें मैंने वर्चर्स आकार को SQL Server 2000 के साथ संगत होने के लिए 8000 पर कैप्चर किया है। यदि आपको MAX लंबाई की आवश्यकता है, तो बस स्क्रिप्ट में MAX के लिए 8000 खोजें/बदलें । – karlgrz
एफवाईआई आप एनटीएक्सटी को एक परम के रूप में उपयोग कर सकते हैं जो एसक्यूएल 2000 के साथ पिछड़ा संगत है, देखें: http://www.sommarskog.se/arrays-in-sql-2000.html –
@ sambo99: यह एक अच्छा सुझाव है। – karlgrz