declare @sql nvarchar(2000)
set @sql='select @totalcount=count(id) from '+@tablename
delare @t intexec sp_executesql @sql,N'@totalcount int output',@t int outputprint @t
set @sql='select @totalcount=count(id) from '+@tablename
delare @t intexec sp_executesql @sql,N'@totalcount int output',@t int outputprint @t
delare
--〉
declare
set @sql='select @totalcount=count(id) from '+@tablename你这样写有错吧!~@totalcount是变量你能说下我上面那句为什么错吗?
declare @totalcount int
declare @sql nvarchar(2000)
set @sql='select @totalcount=count(id) from '+@tablename
exec sp_executesql @sql这样吗?但是提示@totalcount变量必须申明,可我已经申明了啊~!
insert into tb select 1,'a'
insert into tb select 2,'b'
insert into tb select 3,'c'
insert into tb select 4,'d'declare @tbname nvarchar(20)
set @tbname= 'tb'
declare @i int,@sql nvarchar(1000)
set @sql= 'select @i=count(1) from '+@tbname
exec sp_executesql @sql,N'@i int output' ,@i out select @i
4动态语法
declare @sql nvarchar(2000)
declare @t varchar(1000)set @sql='select @t=count(id) from '+@tablename
exec sp_executesql @sql,N'@t varchar(1000) output','@totalcount int output'
print @totalcount刚才没弄明白sp_executesql这个存储过程参数呵呵~!
应该declare @totalcount int
declare @sql nvarchar(2000)set @sql='select @t=count(id) from '+@tablename
exec sp_executesql @sql,N'@t varchar(1000) output',@totalcount output
print @totalcount
还有哦,关键的是print @totalcount输出的是空值啊,怎么回事?记录数肯定是>)
declare @totalcount int
declare @sql nvarchar(2000)set @sql='select @t=count(id) from '+@tablenameEXEC sp_executesql @sql,N'@t AS INT OUTPUT',@t=@totalcount OUTPUT