sqlserver存储过程 赋值

crishadow 2014-02-12 02:10:13
select top 1 [name],ver,count(*) from t_credit where [name] = @name group by [name],ver having count(*) > 1 order by ver desc

存储过程:如何判断是否有记录?如何取出变量 ver?
...全文
303 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
直面人生 2014-02-13
  • 打赏
  • 举报
回复
select set 都可以赋值.. declare @ver int --第一种 select -- select @ver=count(*) from t_credit where [name] = @name group by [name],ver having count(*) > 1 --第二种 set -- set @ver=(select count(*) from t_credit where [name] = @name group by [name],ver having count(*) > 1 )
KeepSayingNo 2014-02-12
  • 打赏
  • 举报
回复
像下面这样定义一个变量,然后你就可以在赋值后随便使用了

declare @ver int
select @ver=count(*)  from t_credit where [name] = @name group by [name],ver having count(*) > 1 
LongRui888 2014-02-12
  • 打赏
  • 举报
回复
引用 3 楼 crishadow 的回复:
消息 141,级别 15,状态 1,过程 gzdw_insert_saveas,第 42 行 向变量赋值的 SELECT 语句不能与数据检索操作结合使用。
你的把select top 1 中的字段就只能有一个ver,其他的字段都得去掉才行的
發糞塗牆 2014-02-12
  • 打赏
  • 举报
回复
一般用 if (select count(1) from xxx where )>0 有数据 else 没数据
crishadow 2014-02-12
  • 打赏
  • 举报
回复
消息 141,级别 15,状态 1,过程 gzdw_insert_saveas,第 42 行 向变量赋值的 SELECT 语句不能与数据检索操作结合使用。
唐诗三百首 2014-02-12
  • 打赏
  • 举报
回复

-- 如何判断是否有记录? 
select @@rowcount


-- 如何取出变量 ver?
declare @v [ver数据类型]

select top 1 @v=ver
from t_credit
where [name]=@name 
group by [name],ver 
having count(*)>1 
order by ver desc
LongRui888 2014-02-12
  • 打赏
  • 举报
回复
试试这个:

create proc dbo.xxx
@ver int output   --输出参数
as


select top 1 @ver = count(*)  from t_credit where [name] = @name 
group by [name],ver having count(*) > 1 
order by ver desc
go


declare @ver int;

exec dbo.xxx @ver output

select @ver

34,590

社区成员

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

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