求个简单的存储过程

mythqxh 2009-11-03 04:29:10
存储过程有Q1,Q2两个参数,分别保存到A1,A2 2张表。
中间做个判断。如果在A1表中有和Q1相同的数据就把Q2保存到A2表中。如果没有找到就把Q1保存到A1.Q2保存到A2表中,
最后返回个BOOL值。谢谢
...全文
58 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
SQL77 2009-11-03
  • 打赏
  • 举报
回复
可能是Q1保存到A2中
SQL77 2009-11-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 feixianxxx 的回复:]
中间做个判断。如果在A1表中有和Q1相同的数据就把Q2保存到A2表中。如果没有找到就把Q1保存到A1.Q2保存到A2表中
。。肯定写错了
[/Quote]
读了半天,猜个,呵呵,
SQL77 2009-11-03
  • 打赏
  • 举报
回复
返回BOOL值是什么意思???是表完成呢,还是什么?

CREATE PROC P (@Q1 INT,@Q2 INT)
AS
BEGIN

INSERT A2 (Q2)SELECT @Q2
IF NOT EXISTS(SELECT * FROM A1 WHERE Q1=@Q1)
INSERT A1 (Q1)SELECT @Q1

END
ko6624934 2009-11-03
  • 打赏
  • 举报
回复
给楼主个大概.我拿以前写的改了改.你自己再修改下.
--小F-- 2009-11-03
  • 打赏
  • 举报
回复
小麦说得有道理 还在发蒙中
ko6624934 2009-11-03
  • 打赏
  • 举报
回复
use 数据库名
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[存储过程名字]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[存储过程名字]
go
create PROCEDURE [dbo].[存储过程名字]
@q1 varchar(2),
@q2 char(2)


AS
Declare

@count int



Select @count = 0
select @count = count(* ) from A1 where 参数= q1


if @count > 0
Begin
insert into a2 values (@q2)
End
Begin Tran
if @count = 0
Begin
insert into a1 values (@q1)
insert into a2 values (@q2)

if @@Error <> 0
Begin
ROLLBACK Tran
Return
End

Select 1
COMMIT Tran
Return true

feixianxxx 2009-11-03
  • 打赏
  • 举报
回复
中间做个判断。如果在A1表中有和Q1相同的数据就把Q2保存到A2表中。如果没有找到就把Q1保存到A1.Q2保存到A2表中
。。肯定写错了

34,576

社区成员

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

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