PDA

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



S_O_S1982
پنج شنبه 12 شهریور 1388, 17:11 عصر
سلام دوستان
اگه سوالم تکراری هست عذر خواهی می کنم
من می خواستم Sp بنویسم به همراه دو پارامتر ، یکی برای نام ستون ، یکی هم برای چک کردم مقدار یکی از فیلدها ولی نمی دونم چی کار باید بکنم
برای اینکه منظورم بهتر بیان کرده باشم
مثال زیر رو می یارم


create procesdure sp_test
)
,(colname varchar(200@
value varchar@
(
as
select @colname from user where struserid=@value



این کد رو که می نویسم کلی خطا بهم می ده
کسی میتونه کمکم کنه
کارم خیلی گیره
ممنون

محمد سلیم آبادی
پنج شنبه 12 شهریور 1388, 19:01 عصر
عموما برای این کارها از دستورات execute یا exec یا از SP سیستمی sp_executesql استفاده می کنیم. ولی از آنجایی که نام ستون هم متغیر است از دستور exec استفاده می کنم ولی یک مثال هم برای طریقه استفاده از SP مذکور آورده ام:


declare @cn nvarchar(15),-- Column Name
@v nvarchar(15),-- Value
@string nvarchar(200),-- SQL String Command
@vD nvarchar(15)--value Difination

select @cn='name',
@v='amin';

select @vD=N'@v nvarchar(15)'

set @string=N'select '+@cn+' from t1 where name='+quotename(@v,'''')
exec(@string)

set @string=N'select name from t1 where name=@v'
execute sp_executesql @string, @vd, @v

farhaneh
پنج شنبه 12 شهریور 1388, 23:52 عصر
ایکاش در مورد متن خطاها توضیح میدادین. پارامتری که به عنوان ستون ارسال میشه دقیقا تو ستون های جدول هستش دیگه؟

amin-soft
جمعه 13 شهریور 1388, 01:26 صبح
اگر سوال دیگری بود مطرح کنید .





CREATE PROCEDURE sp_test
@colparam1 varchar,
@colparam2 varchar
AS
BEGIN
select colnamemoredenazar from tablename where colname1=@colparam1 AND colname2=@colparam2
END