存储过程中这样的语句如何写

precipitant 2005-07-06 07:13:34
有一个变量@ttt 存储了如 " where ???? " 的一个字符串],这是一个条件

如何将这个条件查询的记录数存储到另一个变量@ddd中?

我这样写,不行呀?
exec('select @ddd=count(*) from table' + @ttt)

请高手指点。
...全文
127 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
precipitant 2005-10-24
  • 打赏
  • 举报
回复
3q
precipitant 2005-07-07
  • 打赏
  • 举报
回复
搞定,多谢大虾!
zonelive 2005-07-06
  • 打赏
  • 举报
回复
前面的有问题
这个是测试通过的
create PROCEDURE dgz
@mm int output
AS
declare @m int
declare @a varchar(200)
declare @b nvarchar(2000)
declare @c int
set @a=' where a<5'
set @b=N'select @m=count(*) from aa ' + @a
exec sp_executesql @b
,N'@m int out'
,@m out
set @mm=@m
GO

--调用:
declare @n int
exec dgz @mm=@n output
select @n
zonelive 2005-07-06
  • 打赏
  • 举报
回复
CREATE PROCEDURE dgz
@mm int output
AS
declare @a varchar(200)
declare @b varchar(200)
declare @c int
set @a=' where a<5'
set @b='select '+@mm+'=count(*) from aa ' + @a
exec(@b)

GO
zonelive 2005-07-06
  • 打赏
  • 举报
回复
set @b='select '+@mm+'=count(*) from aa ' + @a
precipitant 2005-07-06
  • 打赏
  • 举报
回复
比如:
--------------------------------
CREATE PROCEDURE dgz
@mm int output
AS
declare @a varchar(200)
declare @b varchar(200)
declare @c int
set @a=' where a<5'
set @b='select @mm=count(*) from aa ' + @a
exec(@b)

GO


执行时:
-------------------------------------------
declare @dd int
exec dgz @dd


提示错误:
———————————————————————
服务器: 消息 137,级别 15,状态 1,行 1
必须声明变量 '@mm'。


高手指点,谢谢!

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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