1 create PROCEDURE UP_Pubs_Test
2 AS
3 Declare @SqlStr varchar(1000)
4 Declare @cntRec int
5 set @SqlStr = 'select @cntRec=count(*) from title'
6 exec (@SqlStr)
7 select @cntRec
在这个存储过程中,[email protected],但是无法取出,虽然第6句可以执行,但第7句却不能执行,请教各位高手帮忙解决。
注意:为了问题的简化,我已经省略一部分,[email protected],[email protected],第6句不能省略。
------解决方案--------------------
set @SqlStr = 'select @cntRec=count(*) from title '
exec (@SqlStr)
select @cntRec
--用過的一個笨方法。。。看看要不要用
==>
create table #(num int)
set @SqlStr = 'select count(*) from title '
insert into # exec(@sqlStr)
select @cntRec =num from #
select @cntRec
------解决方案--------------------
1 create PROCEDURE UP_Pubs_Test
2 AS
3 Declare @SqlStr varchar(1000)
4 Declare @cntRec int
5 select @cntRec=count(*) from title
6 --exec (@SqlStr)
7 select @cntRec
------解决方案--------------------
create PROCEDURE UP_Pubs_Test
AS
Declare @SqlStr nvarchar(1000)
Declare @cntRec int
set @SqlStr = N'select @cntRec=count(*) from title '
exec sp_executesql @SqlStr,[email protected] int output',@cntRec output
select @cntRec
------解决方案--------------------
5楼不是告诉你用sp_executesql方法传出么?
------解决方案--------------------
- SQL code
declare @cntRec intdeclare @SqlStr nvarchar(1000)declare @where1 nvarchar(100)declare @where2 nvarchar(100)set @where1='id=object_id(''sysobjects'')'set @where2='name<>''id'''set @SqlStr='select @cntRec=count(*) from syscolumns where [email protected]+' and [email protected][email protected],下面第二行定義輸出參數,[email protected]exec sp_executesql @SqlStr, [email protected] int output', @cntRec outputselect @cntRec