·蓝桉· 2017-04-20 04:00 采纳率: 50%
浏览 806
已采纳

存储过程执行只能更新却不能插入 ,求帮助

图片说明图片说明图片说明图片说明图片说明图片说明

  • 写回答

2条回答 默认 最新

  • Application_net 2017-04-20 11:36
    关注

    /*--3.开户的存储过程--*/
    if exists (select * from sysobjects where name = 'usp_openAccount')
    drop proc usp_openAccount
    GO
    create procedure usp_openAccount @customerName char(8),@PID char(18),@telephone char(13)
    ,@openMoney money,@savingName char(8),@address varchar(50)=''
    AS
    DECLARE @mycardID char(19),@cur_customerID int, @savingID int
    --调用产生随机卡号的存储过程获得随机卡号
    EXECUTE usp_randCardID @mycardID OUTPUT
    while exists(SELECT * FROM cardInfo WHERE cardID=@mycardID)
    EXECUTE usp_randCardID @mycardID OUTPUT
    print '尊敬的客户,开户成功!系统为您产生的随机卡号为:'+@mycardID
    print '开户日期'+convert(char(10),getdate(),111)+' 开户金额:'+convert(varchar(20),@openMoney)
    IF not exists(select * from userInfo where PID=@PID)
    INSERT INTO userInfo(customerName,PID,telephone,address )
    VALUES(@customerName,@PID,@telephone,@address)
    SELECT @savingID = savingID FROM deposit WHERE savingName =@savingName
    -- SELECT savingID FROM deposit WHERE savingName ='活期'
    if @savingID is NULL
    BEGIN
    RAISERROR('存款类型不正确,请重新输入!',16,1)
    RETURN -1
    END
    --PRINT CAST(@savingID AS varchar(10))
    select @cur_customerID=customerID from userInfo where PID=@PID
    --PRINT CAST(@cur_customerID AS varchar(10))
    INSERT INTO cardInfo(cardID,savingID,openMoney,balance,customerID)
    VALUES(@mycardID,@savingID,@openMoney,@openMoney,@cur_customerID)
    GO

    --调用存储过程重新开户
    EXEC usp_openAccount '王五','334456889012678','2222-63598978',1000,'活期','河南新乡'
    EXEC usp_openAccount '赵二','213445678912342222','0760-44446666',1,'定期一年'
    select * from vw_userInfo
    select * from vw_cardInfo
    GO

    你可以叁考下代码

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料