PDA

View Full Version : مشکل در اجرای دستور insert برای جدول با نام داینامیک



ali.bahrami
سه شنبه 23 آبان 1391, 00:56 صبح
سلام دوستان من دستور زیر را در یک SP بکار بردم بدون مشکل کامپایل میشه ولی موقع اجرا خطا میده

دستور ایچنین است :
EXECUTE('INSERT INTO ' + @TableName + ' VALUES('+@date+','+ @No_hesab+',0,'+ @mablagh+','+ @No_sanad+','+ @sabd_code+','+ @tozihat+','+ @Date1+')' )

خطایی که میده : میگه syntax کنار مقدار متغیر tozihat اشتباه است. اگر میشه راهنمایی بفرمایید.

حمیدرضاصادقیان
سه شنبه 23 آبان 1391, 07:11 صبح
سلام.
این که ظاهرا ایرادی نداره.
متغیر tozihat چه نوع مقداری میگیره؟ اگه خالی بذارید چه اتفاقی میافته؟
میتونید کل این رشته رو درون یک متغیر رشته ای بریزید بعد اونو Print کنید ببینید ساختار دستوری شما درست هست یاخیر بعد از اینکه مقدار میگیره.

baktash.n81@gmail.com
سه شنبه 23 آبان 1391, 09:12 صبح
خوب موقعی که دارید یه فیلد مثل توضیحات ... که احتمالا nvarchar هست رو insert می کنید مقدار باید داخل '' قرار داشته باشه اما رشته ایی که شما ایجاد می کنید خود مقدار رو داره ... و ' های دوطرفش رو نداره ...

ali.bahrami
سه شنبه 23 آبان 1391, 10:21 صبح
سلام.
این که ظاهرا ایرادی نداره.
متغیر tozihat چه نوع مقداری میگیره؟ اگه خالی بذارید چه اتفاقی میافته؟
میتونید کل این رشته رو درون یک متغیر رشته ای بریزید بعد اونو Print کنید ببینید ساختار دستوری شما درست هست یاخیر بعد از اینکه مقدار میگیره.


ممنون از جوابتون.
متغیر tozihat مقدارش varchar هست. جالب اینه که چه خالی بزارم یا مقدار داشته باشه بهش گیر میده مثلا اگر مقدار متغیر tozihat 'نقدی' باشه میگه ستون نقدی موجود نیست یا اگر خالی باشه میگه ستون ' ' موجود نیست. ولی اگر متغیر را حذف کنم بدون مشکل کار میکنه

baktash.n81@gmail.com
سه شنبه 23 آبان 1391, 11:04 صبح
EXECUTE('INSERT INTO ' + @TableName + ' VALUES('+@date+','+ @No_hesab+',0,'+ @mablagh+','+ @No_sanad+','+ @sabd_code+','''+ @tozihat+''','+ @Date1+')' )

ali.bahrami
سه شنبه 23 آبان 1391, 11:39 صبح
ممنون دوست عزیز با گذاشتن ' ' در دو طرف متغیر مشکل حل شد ولی عجیبه چون متغیرهای date@ و No_sanad@ هم از نوع رشته هستند جالبه که برای اونا خطا نمیگیره
موفق و سربلند باشید دوستان