PDA

View Full Version : جواب count همیشه یکه !



Sal_64
پنج شنبه 23 آبان 1387, 23:27 عصر
سلام

جواب این sp همیشه یک چرا ؟؟


ALTER PROCEDURE dbo.admin_get_number_row_in_table

(
@table_name varchar(100)

)
AS
declare @number_row varchar(20)
set @number_row ='select count(*) as number from ' + @table_name
EXEC(@number_row)
RETURN

linux
جمعه 24 آبان 1387, 01:00 صبح
declare @table_name nvarchar(100)
declare @number_row nvarchar(200)
set @table_name= your Table name'
set @number_row ='select count(*) from ['+ @table_name +']'
--select @number_row
exec(@number_row)

Sal_64
جمعه 24 آبان 1387, 11:05 صبح
سلام
همونطور که میدونید اسم تیبل ها ترکیبی از حروف انگلیسی هست(انگلیسی یا فینگلیش)
آیا احتیاج است نوع nvarchar تعریف شه
و مورد بعد مقدار برگشتی از count در این پایگاه حداکثر 10 و در برنامه اصلی حداکثر 80.000
چرا طول 20 برای حداکثر 10 رکورد جوابگو نیست و با طول 200 درست جواب میده

با تفاصیر بالا برای 80.000 رکورد طول رو چقدر باید مشخص کرد ؟!

با تشکر

masoudcg1
دوشنبه 11 آذر 1387, 23:49 عصر
declare @table_name nvarchar(100)
declare @number_row nvarchar(200)
set @table_name= your Table name'
set @number_row ='select count(*) from ['+ @table_name +']'
--select @number_row
exec sp_executesql @number
-- -!\/|

MajerajooyeKhallagh
سه شنبه 12 آذر 1387, 08:09 صبح
دوست عزیز ,ایراد در طول متغیر @number_row میباشد و باید طول آن را بیشتر بگیرید و در اینجا نیازی به RETURN نمیباشد:



ALTERPROCEDURE dbo.admin_get_number_row_in_table

(
@table_name varchar(100)
)
AS
DECLARE @number_row NVARCHAR(100)
SET @number_row ='select count(*) as number from '+ @table_name
EXEC(@number_row)

Sal_64
سه شنبه 12 آذر 1387, 13:22 عصر
سلام

دوستان تشکر
جواب سوال اولم رو در پست دوم گرفتم
..
لطفا در صورت امکان به سوال پست سوم پاسخ بدید


با تشکر