PDA

View Full Version : ارسال نام جدول به عنوان پارامتر



Galawij
دوشنبه 22 فروردین 1390, 08:35 صبح
سلام
روالی دارم که نام جداول را برای دستور Select از ورودی می گیره. حالا این پارامتر ورودی رو در دستور Select بعد از کلمه from قبول نمی کنه (در ضمن نمی خوام از دستورات تزریق sql (روالی های داخلی sql) استفاده کنم).
چطور باید بنویسمش؟

حمیدرضاصادقیان
دوشنبه 22 فروردین 1390, 11:35 صبح
سلام.
شما باید از طریق Dynamic SQl اینکارو انجام بدید.
مثال :

DECLARE @DetName varchar(30)
if @typ=1 set @DetName='p_otpt'
else if @typ=2 set @DetName='p_inpt'
else if @typ=3 set @DetName='p_sput'
else if @typ=4 set @DetName='p_pput'
else if @typ=5 set @DetName='p_pish'
else if @typ=6 set @DetName='p_garb'
else if @typ=7 set @DetName='p_cnvt'
if @typ=5 exec(' Select *,0 as sanad,-1 as Code_Asli,0 as Naghd,0 as User_tas from '+@DetName+' order by code' )
else exec(' Select *,(select doc from f_sanad_doc where sanad='+@DetName+ '.sanad) as doc from '+@DetName+' order by code' )