PDA

View Full Version : ایراد خطا در نام فانکشن و پروسیجر



moferferi
یک شنبه 01 بهمن 1391, 22:01 عصر
سلام
من یه جدول دارم که توی اون دسته بندی های مطالب سایتم را قرار دادم که از اون یک منو میسازم
اسم جدول CategoryMenu هستش
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[Isparent](@menuid as int)
returns bit
as
begin
declare @c as int
set @c=(select COUNT(*) from CategoryMenu where Parent=@menuid)
if @c=0
return 0
return 1
end

حالا یک فانکشن به نام Isparent ایجاد کردم برای تشخیص اینکه یک ردیف ردیف پدر هست یا فرزند
و یک پروسیجر به نام [GetListOfChildMenu] که نام ایتم های فرزند را بر میگردونه.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[GetListOfChildMenu](@menuid as int)
as
select *,dbo.Isparent(ID) as haschild from CategoryMenu
where (Parent=@menuid )order by sort asc
و اما مشکل؟
برنامه من بدون هیچ مشکلی کار میکنه و منوها در برنامه ساخته میشه
اما در محیط دیتابیس در فانکشن زیر اسم [dbo].[Isparent] یه خط قرمز کشیده و خطای invalid object name
میده.و در پروسیجر هم زیر اسم [dbo].[GetListOfChildMenu] همین خط قرمز را کشیده

کسی میدونه دلیلش چیه؟دقیقا از همین دو تا کوئری در یه برنامه و یه دیتابیس دیگه استفاده کرده بودم ولی این مشکل را نداشت.
در اخر بازهم بگم که کوئری ها هیچ مشکلی نداره و کاری که میخوام را انجام میده.فقط مشکلم خط قرمز زیره اسم کوئریه

محمد سلیم آبادی
سه شنبه 03 بهمن 1391, 07:41 صبح
دستور USE را همراه با نام Database تون قبل از Alter کردن پروسیجر و تابع بکار ببرین. احتمالا مشکل به همین مساله برمی گردد.