पर विचार करें:टी-एसक्यूएल में कॉल और एक्सईसी के बीच क्या अंतर है?
CREATE PROCEDURE LowerCityDiscounts @city VARCHAR(45), @decrease DECIMAL(10,2) AS
BEGIN
BEGIN TRANSACTION;
UPDATE Customers SET discnt = discnt - @decrease
WHERE Customers.city = @city;
UPDATE Customers SET discnt = 0
WHERE Customers.city = @city AND discnt < 0
COMMIT;
END;
मैं के साथ इस प्रक्रिया को फोन करने की कोशिश की:
CALL LowerCityDiscounts 'Cleveland', 5;
लेकिन यह केवल
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'Cleveland'.
फिर भी पैदा करता है, अगर मैं
EXEC LowerCityDiscounts 'Cleveland', 5;
लिए चीजों को बदलना
सब कुछ ठीक काम करता है। यह the documentation के बावजूद यह बताते हुए कि call
सही वाक्यविन्यास है।
EXEC
क्यों काम करता है जब CALL
नहीं करता है?
लिंक किए गए दस्तावेज ओडीबीसी चालक से संबंधित हैं, यानी 'कॉल' एक ओडीबीसी निर्माण है। आप ओडीबीसी का उपयोग कर रहे हैं? –
एक एक tsql कीवर्ड है, दूसरा मूल रूप से – Peter
@KierenJohnstone नहीं है: ठीक है, मैं ऐप के अंदर ओडीबीसी का उपयोग कर रहा हूं, लेकिन मैं SQL सर्वर प्रबंधन स्टूडियो के अंदर चीजों का परीक्षण कर रहा हूं। –