存贮过程中传出参数的???

user918 2003-11-26 11:33:55
如果我存储过程执行一个动态的SQL语句,我怎样能得到他的子段,在把他传给我现在的存贮过程的一个变量。示例如下:
DECLARE @TABLE VARCHAR(20)
DECLARE @RecordCount int
DECLARE @DYSQL VARCHAR(200)
SET @DYSQL= 'SELECT COUNT(*) FROM '+@TABLE
SP_EXECUTESQL @DYSQL
现在我想把@DYSQL执行的结果在传给变量@RecordCount该如何操作啊???

...全文
49 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
txlicenhe 2003-11-26
  • 打赏
  • 举报
回复
exec sp_executesql @DYSQL,N'@a int output',@RecordCount output

http://expert.csdn.net/Expert/topic/2364/2364046.xml?temp=.829693
[交流]动态SQL语句
zjcxc 元老 2003-11-26
  • 打赏
  • 举报
回复

create proc p_test
@TABLE VARCHAR(20),
@RecordCount int out
as
DECLARE @DYSQL nVARCHAR(2000)
SET @DYSQL= 'SELECT @RecordCount=COUNT(*) FROM '+@TABLE
exec SP_EXECUTESQL @DYSQL,N'@RecordCount int out',@RecordCount out
go

--调用:
declare @RecordCount
exec p_test 'aa',@RecordCount out
select 结果=@RecordCount
pengdali 2003-11-26
  • 打赏
  • 举报
回复
DECLARE @TABLE VARCHAR(20)
DECLARE @RecordCount int
DECLARE @DYSQL NVARCHAR(2000) --注意是nvarchar
SET @DYSQL= 'SELECT @a=COUNT(*) FROM '+@TABLE

exec sp_executesql @DYSQL,N'@a int output',@RecordCount output
pengdali 2003-11-26
  • 打赏
  • 举报
回复
DECLARE @TABLE VARCHAR(20)
DECLARE @RecordCount int
DECLARE @DYSQL NVARCHAR(2000)
SET @DYSQL= 'SELECT @a=COUNT(*) FROM '+@TABLE

exec sp_executesql @sql,N'@aint output',@RecordCount output

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧