के लिए विफल रहता है मेरे पास एक क्लाइंट एप्लिकेशन है जो एक अस्थायी तालिका बनाता है, अस्थायी तालिका में एक बड़ा सम्मिलित करता है, फिर इसे हटाने से पहले तालिका का उपयोग करके कुछ SQL निष्पादित करता है।ड्रॉप तालिका अस्थायी तालिका
छद्म कोड:
open connection
begin transaction
CREATE TABLE #Temp ([Id] int NOT NULL)
bulk insert 500 rows into #Temp
UPDATE [OtherTable] SET [Status]=0 WHERE [Id] IN (SELECT [Id] FROM #Temp) AND [Group]=1
DELETE FROM #Temp WHERE [Id] IN (SELECT [Id] FROM [OtherTable] WHERE [Group]=1)
INSERT INTO [OtherTable] ([Group], [Id]) SELECT 1 as [Group], [DocIden] FROM #Temp
DROP TABLE #Temp
COMMIT TRANSACTION
CLOSE CONNECTION
इस ड्रॉप बयान पर एक त्रुटि के साथ विफल हो रहा है:
, टेबल '#Temp' नहीं छोड़ा जा सकता, क्योंकि यह मौजूद नहीं है या आप की अनुमति नहीं है ।
मैं कल्पना नहीं कर सकता कि यह विफलता पहले किसी और चीज के बिना कैसे हो सकती है, लेकिन मुझे इससे पहले कोई अन्य विफलता दिखाई नहीं दे रही है।
क्या ऐसी कोई चीज है जो मुझे याद आ रही है जिससे ऐसा हो सकता है?
एक सुझाव, बनाने के लिए, थोक डालने ले जाते हैं, और और लेनदेन ब्लॉक के बाहर बयान छोड़ देते हैं। इसका कोई कारण नहीं है या इसे लॉक करने की आवश्यकता नहीं है, क्योंकि कोई अन्य कनेक्शन इसका उपयोग नहीं कर सकता है। –
@ फिलिप केली: यह बुरा विचार नहीं है, मैं देखूंगा कि क्या मैं लेनदेन की लंबाई को सीमित करने के लिए ऐसा कर सकता हूं, लेकिन मैं नहीं देख सकता कि यह समस्या कैसे उत्पन्न होगी – StarBright
बग व्हाइटस्पेस में प्रकट होता प्रतीत होता है । ;) एक पूर्ण रेपो स्क्रिप्ट इस पर अधिक प्रकाश डालेगी। – Aaronaught