create proc proc_name @tbname varchar(50) as begin exec('select count(*) from '+ @tbname) end
if exists(select Name from sysobjects where name='prGetCount' and type='P') Drop Procedure prGetCount go create Procedure prGetCount @tbName varchar(50) with encryption as begin exec('select count(*) from '+@tbName) end go
--自己写的话可以CREATE PROC dbo.p_rows @table_name sysname, @rows int OUTPUT AS SET NOCOUNT ON; DECLARE @sql nvarchar(4000); SET @sql = N'SELECT @rows = COUNT(*) FROM ' + @table_name; EXEC sp_executesql @sql, N'@rows int OUTPUT', @rows OUTPUT; GO-- 调用 DECLARE @re int; EXEC dbo.p_rows N'表名', @re OUT; SELECT @re;
select rows from sysindexes where indid in(0,1) and ID=object_id('表名')
create proc p1(@TabName sysname) as select rows from sysindexes where indid in(0,1) and ID=object_id(@TabName)go
create procedure sp_count(@tname nvarchar(60)) as begin declare @cnt int,@sql nvarchar(200) set @sql=N'select @cnt=count(*) from '+tname exec @sql,N'@cnt int out',@cnt out return @cnt end
^_^。谢谢大家帮忙啊。都解决了啊。我自己写的有问题啊。也不清楚那错了啊。运行提示那行有错误。但不清楚什么原因啊。 Create procedure jilushu(@tablename varchar(30),@jicount int(8) out) As Select * from @tablename Select @jicount=@@rowcount go 消息 1087,级别 15,状态 2,过程 jilushu,第 3 行 必须声明表变量 "@tablename"。
Create procedure jilushu(@tablename varchar(30),@jicount int out) As exec('Select * from '+@tablename) Select @jicount=@@rowcount go
@tbname varchar(50)
as
begin
exec('select count(*) from '+ @tbname)
end
Drop Procedure prGetCount
go
create Procedure prGetCount @tbName varchar(50)
with encryption
as
begin
exec('select count(*) from '+@tbName)
end
go
@table_name sysname,
@rows int OUTPUT
AS
SET NOCOUNT ON;
DECLARE
@sql nvarchar(4000);
SET @sql = N'SELECT @rows = COUNT(*) FROM ' + @table_name;
EXEC sp_executesql @sql, N'@rows int OUTPUT', @rows OUTPUT;
GO-- 调用
DECLARE
@re int;
EXEC dbo.p_rows N'表名', @re OUT;
SELECT @re;
as
select rows from sysindexes where indid in(0,1) and ID=object_id(@TabName)go
as
begin
declare @cnt int,@sql nvarchar(200)
set @sql=N'select @cnt=count(*) from '+tname
exec @sql,N'@cnt int out',@cnt out return @cnt
end
Create procedure jilushu(@tablename varchar(30),@jicount int(8) out)
As
Select * from @tablename
Select @jicount=@@rowcount
go
消息 1087,级别 15,状态 2,过程 jilushu,第 3 行
必须声明表变量 "@tablename"。
As
exec('Select * from '+@tablename)
Select @jicount=@@rowcount
go
2、int类型不要指定长度