मेरे पास एक गतिशील SQL कथन है जिसे मैंने संग्रहीत प्रक्रिया में बनाया है। मुझे कर्सर का उपयोग करके परिणामों पर पुन: प्रयास करना होगा। मुझे सही वाक्यविन्यास का पता लगाने में मुश्किल हो रही है। मैं यही कर रहा हूँ।संग्रहीत प्रक्रिया में गतिशील एसक्यूएल के साथ एक कर्सर का उपयोग
SELECT @SQLStatement = 'SELECT userId FROM users'
DECLARE @UserId
DECLARE users_cursor CURSOR FOR
EXECUTE @SQLStatment --Fails here. Doesn''t like this
OPEN users_cursor
FETCH NEXT FROM users_cursor
INTO @UserId
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC asp_DoSomethingStoredProc @UserId
END
CLOSE users_cursor
DEALLOCATE users_cursor
ऐसा करने का सही तरीका क्या है?
में कर्सर उपयोग की
उदाहरण "सही" जिस तरह से गतिशील एसक्यूएल या कर्सर का उपयोग नहीं करने के लिए है। क्या आप एक वास्तविक उदाहरण दे सकते हैं जिसे आप पूरा करने की कोशिश कर रहे हैं? – NotMe
बिल्कुल - एकल संग्रहित प्रो में SQL सर्वर के दो बड़े NO-NOs :-) –
गतिशील SQL आवश्यक रूप से बुरा नहीं है, खासकर यदि आप EXEC के बजाय sp_executesql का उपयोग करते हैं। कर्सर, हालांकि शापित हैं। – RolandTumble