PDA

View Full Version : سوال: نحوه نوشتن دستور در store procedure



rahil_2007
یک شنبه 14 مهر 1387, 20:52 عصر
با سلام
دستور زیر بصورت یک select ساده در برنامه جواب میده اما در store procedure نه.
دستور زیر را چطور میتونم در store procedure وارد کنم که جواب بده. اورژانسیه.
جای دیگه جواب نگرفتم.



"select code,ngroup,name,family,address,tel,fax,nmarkaz,nf aaliat from aaza_sanaye_bazargani,groups where aaza_sanaye_bazargani.groupcode=groups.groupcode and khadamatcode=@khadamatcode and khadamatcode_detail=@khadamatcode_detail and nmarkaz LIKE N'%" & nmarkaz.Value & "%'"

rooshan2008
یک شنبه 14 مهر 1387, 23:48 عصر
سلام ...این متن پایین که می بینی رو داخل Sql Query Analyzerاجرا کن نتیجش این یه استورپروسیجر به نام SelectQهیست ..البته بخاطر این ادیتو یکم بالاپایین شده ولی اگه کپی کنی درسته......
راستی طول این متغیر ها رو من پیش فرض 50 در نظر گرفتم....


create proc SelectQ
@khadamatcode varchar(50),
@khadamatcode_detail varchar(50),
@nmarkaz varchar(50)
as
select code,ngroup,name,family,address,tel,fax,nmarkaz,nf aaliat
from aaza_sanaye_bazargani,groups where
aaza_sanaye_bazargani.groupcode=groups.groupcode and
khadamatcode=@khadamatcode and khadamatcode_detail=@khadamatcode_detail and
nmarkaz LIKE N'%' + @nmarkaz + '%'


اگه بد گفتم به بزرگی خودت ببخش

rahil_2007
دوشنبه 15 مهر 1387, 00:53 صبح
من دقیقا همینو در store procedure نوشتم اما جواب نمیده.

__H2__
دوشنبه 15 مهر 1387, 01:26 صبح
سلام
عمل شما در ترکیب دو جدول بدون JOIN چندان جالب نیست ولی در کل مشکل شما از دستور LIKE است که با کد بهینه شده زیر حل خواهد شد.


CREATE PROCEDURE ProcedureName
(
@khadamatcode nvarchar(50),
@khadamatcode_detail nvarchar(50),
@nmarkaz nvarchar(50)
)
AS

SET @nmarkaz = N'%' + @nmarkaz + N'%';

SELECT code, ngroup, [name], family, [address], tel, fax, nmarkaz, nfaaliat
FROM aaza_sanaye_bazargani, groups
WHERE
(
(aaza_sanaye_bazargani.groupcode = groups.groupcode) AND
(khadamatcode = @khadamatcode) AND
(khadamatcode_detail = @khadamatcode_detail) AND
(nmarkaz LIKE @nmarkaz)
);