eg:--存储过程带返回值
create proc test
@tablename varchar(20), --表名
@total int output --返回值
as
begin
declare @sqltext nvarchar(2000)
set @sqltext='select @a=count(*) from '+@tablename
exec sp_executesql @sqltext,'@a int output',@total --返回@total
endDrop proc test
create proc test
@tablename varchar(20), --表名
@total int output --返回值
as
begin
declare @sqltext nvarchar(2000)
set @sqltext='select @a=count(*) from '+@tablename
exec sp_executesql @sqltext,'@a int output',@total --返回@total
endDrop proc test
declare @QueryStr varchar(1000),@count varchar(1000)
set @QueryStr='select id,mean,memo from dic'
set @count='select count(*) from ('+@QueryStr+' ) a where memo=12'
exec (@count)
set @count='select count(*) from ('+@QueryStr+')a where memo='''12''''
刚才出去了 谢谢大家
可是
按照
paoluo(一天到晚游泳的鱼) 说的执行时出错
过程需要参数 '@parameters' 为 'ntext/nchar/nvarchar' 类型。
请问是怎么回事儿呀?
问题是这样子的
举个例子
declare @Q nvarchar(4000)
declare @Q2 nvarchar(4000)
declare @count int
set @Q ='select * from Graduate'
set @Q2 = 'select count(*) from (' + @Q + ' where Gradid>200200000)a '
--set @Q2='select count(*) from (select * from Graduate)a'
exec (@Q2)
//这时可以得到查询结果 为2599
我想把这个值赋值给变量@count
请问该怎么做呢?
declare @Q2 nvarchar(4000)
declare @count int
set @Q ='select * from Graduate'
set @Q2 = 'select @count=count(*) from (' + @Q + ' where Gradid>200200000)a '
--set @Q2='select count(*) from (select * from Graduate)a'
exec sp_executesql @Q2,N' @count int out', @count out
select 结果=@count