چه تکنولوژی می‌خواهید یاد بگیرید؟

نظرات و انتقادات خود را با ما در میان بگذارید

آپدیت روزانه

بیش از 1500 مطلب آموزشی

نیازهای روز

بانک اطلاعاتی: Arithmetic overflow error converting expression to data type int

SELECT COUNT(*) AS Count_Item, SUM(t.Amount) AS Amount_Item 
	FROM  Table_1 AS T1
		WHERE T1.Id > 0 AND T1.Id < 101;

مثال فوق می‌تواند موجب هندل شدن خطاء اس‌کیو‌ال "Arithmetic overflow error converting expression to data type int" گردد. زمانی این اتفاق رخ می‌دهد که مجموع مقدار SUM از بازه INT فراتر برود:

SELECT SUM(CAST(2147483647 AS INT))

کد فوق برابر با بازه داده نوع INT می‌باشد ولی چنانچه مقدار 7 به 8 تغییر یابد به دلیل خارج شدن از این بازه با خطا زیر مواجه خواهید شد:

Arithmetic overflow error converting expression to data type int.

ساده‌ترین راه‌حل تغییر نوع داده INT به BIGINT می‌باشد:

SELECT SUM(CAST(2147483648 AS BIGINT))



0 نظر:

تعداد دیدگاه‌های کاربران : 0 دیدگاه
مهمان گرامی! برای ارسال نظر نیاز است وارد سایت شوید.