ورود

View Full Version : خطا زمان پاس کردن مقدار به پارامتر پراسیجر Invalid object name 'parametername



میلاد قاضی پور
پنج شنبه 18 شهریور 1389, 04:21 صبح
سلام . من پراسیجری دارم که با تابع کانت سطور تیبل رو برمیگردونه. حالا در این پراسیجر من نام تیبل رو به صورت پارامتر در نظر گرفتم . موقع اجرای پراسیجر این کد رو نوشتم اما خطا اعلام میکنه



exec dbo.sp_rowsCount
'student'

Msg 208, Level 16, State 1, Procedure sp_rowsCount, Line 5
Invalid object name 'tbname'.

بهزادصادقی
پنج شنبه 18 شهریور 1389, 04:36 صبح
لطفا کد stored procedure خود را درج کنید.

ولی کلا، شما نمی توانید اسم یک جدول را به صورت یک پارامتر پاس کنید و بعد از آن مثل یک چدول معمولی استفاده نمائید. این کار روش های خاص خودش را داره. ولی برای دیدن اینکه کدام روش به درد شما می خورد، من احتیاج دارم کد شما را ببینم.

میلاد قاضی پور
پنج شنبه 18 شهریور 1389, 04:50 صبح
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


ALTER procedure [dbo].[sp_rowsCount]
@tbname nvarchar(50)
as
select count(*) from
tbname

بهزادصادقی
پنج شنبه 18 شهریور 1389, 04:57 صبح
ببین این برایت کار می کنه:



set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


alter procedure [dbo].[sp_rowsCount]
@tbname nvarchar(50)
as
declare @sql nvarchar(400);
set @sql = 'select count(1) from ' + @tbname;
exec( @sql );