存储过程中,如何取得所选取记录的部分字段的值?

bizbuy 2008-01-16 04:39:53
在存储过程中,我要得到的结果是:
 SELECT * FROM DB WHERE ID=@ID

现在的情况是:
在返回结果前,要根据其中的字段[para]来判断,如果[para]不等于传递来变量@para,则将[para]的值更新为@para(包括数据库中和所选取的记录中),并返回更新后的记录。

如何写这个存储过程效率才最高?
...全文
130 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhujinqiang 2008-01-22
  • 打赏
  • 举报
回复
 SELECT       T.*,para   =   @para       FROM       DB  T     WHERE       T.ID=@ID   
bizbuy 2008-01-18
  • 打赏
  • 举报
回复
上面说的,都要进行两次操作

能不能只进行一次操作,根据select的结果判断,如果有必要再执行更新??
bizbuy 2008-01-17
  • 打赏
  • 举报
回复
To:dawugui
SELECT *,para = @para FROM DB WHERE ID=@ID

这个语句好像不行,执行时“para = @para”没有产生影响 
中国风 2008-01-16
  • 打赏
  • 举报
回复
update T set para = @para where ID=@ID and para<>@para
select * from T where ID=@ID
昵称被占用了 2008-01-16
  • 打赏
  • 举报
回复

UPDATE DB set para = @para WHERE ID=@ID and isnull(para,'') <> @para

SELECT * FROM DB WHERE ID=@ID

dawugui 2008-01-16
  • 打赏
  • 举报
回复
在存储过程中,我要得到的结果是:

现在的情况是:
在返回结果前,要根据其中的字段[para]来判断,如果[para]不等于传递来变量@para,则将[para]的值更新为@para(包括数据库中和所选取的记录中),并返回更新后的记录。

如何写这个存储过程效率才最高?

--------------------------


 SELECT   *,para = @para   FROM   DB   WHERE   ID=@ID 
kk19840210 2008-01-16
  • 打赏
  • 举报
回复
update db set para=@para where para<>@para
select * from db where id=@id
kk19840210 2008-01-16
  • 打赏
  • 举报
回复
update db set para=@para
select * from db where id=@id

34,593

社区成员

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

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