Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get Row count by dynamically passing the table name

create procedure qa_cc
@tablename varchar(500)

AS 

BEGIN
    -- Create two integer values
DECLARE @tableOneCount varchar(50), @tableTwoCount varchar(50)

-- Get the number of rows from the first table
SELECT @tableOneCount = 'SELECT COUNT(*) FROM'  + @tablename; 
    exec (@tableOneCount);           

select      @tableOneCount  ; 

END

exec qa_cc @tablename=table1
like image 662
user1649269 Avatar asked Sep 06 '25 03:09

user1649269


1 Answers

You could use sp_executesql, like:

declare @sql nvarchar(max);
set @sql = N'select @cnt = count(*) from ' + @tablename;
declare @cnt int;
exec sp_executesql @sql, N'@cnt int output', @cnt = @cnt output;
select @cnt;
like image 133
Andomar Avatar answered Sep 07 '25 16:09

Andomar