--获取总记录数create proc [dbo].[test]
@sumcount int output,--总行数
@talname varchar(100),--表名
@strwher varchar(400)--查询条件
as
declare @sql varchar(400)
if @strwher!=''
set @sql=' select '+@sumcount+'=convert(int,count(*)) from ' +@talname
else
set @sql=' select '+@sumcount+'=convert(int,count(*)) from ' +@talname+' where '+@strwher
exec (@sql)
--调用
declare @counts int
exec test @counts output,'Tunnel_menber','' --错误
消息 245,级别 16,状态 1,过程 test,第 8 行
在将 varchar 值 ' select ' 转换成数据类型 int 时失败。
@sumcount int output,--总行数
@talname varchar(100),--表名
@strwher varchar(400)--查询条件
as
declare @sql varchar(400)
if @strwher!=''
set @sql=' select '+@sumcount+'=convert(int,count(*)) from ' +@talname
else
set @sql=' select '+@sumcount+'=convert(int,count(*)) from ' +@talname+' where '+@strwher
exec (@sql)
--调用
declare @counts int
exec test @counts output,'Tunnel_menber','' --错误
消息 245,级别 16,状态 1,过程 test,第 8 行
在将 varchar 值 ' select ' 转换成数据类型 int 时失败。
@sumcount int output,--总行数
@talname varchar(100),--表名
@strwher varchar(400)--查询条件
as
declare @sql nvarchar(4000)
if @strwher!=''
set @sql=' select @r=convert(int,count(*)) from ' +@talname
else
set @sql=' select @r=convert(int,count(*)) from ' +@talname+' where '+@strwher
exec sp_executesql @sql,N'@r int output',@sumcount output
@sumcount int output,--总行数
@talname varchar(100),--表名
@strwher varchar(400)--查询条件
as
declare @sql nvarchar(4000)
if @strwher!=''
set @sql=' select @r=count(*) from ' +@talname
else
set @sql=' select @r=count(*) from ' +@talname+' where '+@strwher
exec sp_executesql @sql,N'@r int output',@sumcount output
else
set @sql=' select '+@sumcount+'=convert(int,count(*)) from ' +@talname+' where '+@strwher
set @sql=' select '+ltrim(@sumcount)+'=convert(int,count(*)) from ' +@talname
else
set @sql=' select '+ltrim(@sumcount)+'=convert(int,count(*)) from ' +@talname+' where '+@strwher
@sumcount int output,--总行数
@talname varchar(100),--表名
@strwher varchar(400)--查询条件
as
declare @sql nvarchar(4000)
if @strwher!=''
set @sql=' select @r=count(*) from ' +@talname
else
set @sql=' select @r=count(*) from ' +@talname+' where '+@strwher
exec sp_executesql @sql,N'@r int output',@sumcount output--调用
declare @counts int
exec test @counts output,'Tunnel_menber','' --错误
消息 102,级别 15,状态 1,第 1 行
'where' 附近有语法错误。能再帮忙看下么
create proc [dbo].[test]
@sumcount int output,--总行数
@talname varchar(100),--表名
@strwher varchar(400)--查询条件
as
declare @sql nvarchar(4000)
if @strwher!=''
set @sql=' select @r=count(*) from ' +@talname
else
set @sql=' select @r=count(*) from ' +@talname+' where 1=1 + and '+@strwher
exec sp_executesql @sql,N'@r int output',@sumcount output--调用
declare @counts int
exec test @counts output,'Tunnel_menber',''
@sumcount int output,--总行数
@talname varchar(100),--表名
@strwher varchar(400)--查询条件
as
declare @sql nvarchar(4000)
if @strwher!=''
set @sql=' select @r=count(*) from ' +@talname
else
set @sql=' select @r=count(*) from ' +@talname+' where '+@strwher
exec sp_executesql @sql,N'@r int output',@sumcount output--调用
declare @counts int
exec test @counts output,'Tunnel_menber',''应该是if isnull(@strwher,'')='' 吧!
@sumcount int output,--总行数
@talname varchar(100),--表名
@strwher varchar(400)--查询条件
as
declare @sql varchar(400)
if @strwher!=''
set @sql=' select '+ltrim(@sumcount)+'=convert(int,count(*)) from ' +@talname
else
set @sql=' select '+ltrim(@sumcount)+'=convert(int,count(*)) from ' +@talname+' where '+@strwher
exec (@sql)
declare @counts int
exec test @counts output,'Tunnel_menber',''
print '---'+Convert(varchar(100),@counts) 诺诺的问下,想看到输出结果可是....
exec test @counts output,'Tunnel_menber',''
print '---'+Convert(varchar(100),@counts) select @counts
就可以了
改为:if isnull(@strwher,'')=''
经测试: Haiwer 的第二条回复其实已成功,小弟愚钝了....分给少了,希望下次有机会给补上!