繁体   English   中英

在一个存储过程中多次插入和选择

[英]Multiple inserts and selects in one stored procedure

我想创建一个程序

A)检查TicketNumberInput是否在表Tix_number.TicketNumber中。

B)如果确实存在,则更新记录以将UID设置为@uid,并将Claimdate设置为GetDate()

与...

C)将记录插入另一个表(事务日志表)

如果记录确实存在,只需将一条记录添加到STATUS = 2(失败)的事务日志中即可。

到目前为止,这是我的代码,但是检查IF语句并更新记录并插入另一条记录似乎没有问题。 如何在语句中添加许多检查。 开始结束似乎没有用

create procedure [dbo].[UpdateTicketNumber]
@TicketNumberInput uniqueidentifier, 
@UID   int
as 
IF EXISTS(
BEGIN
    SELECT *
    FROM [tixtowin].[dbo].[Tix_Number]
    where @TicketNumberInput = Tix_Number.TicketNumber)
    PRINT 'CORRECT RECORD'

    Update Tix_Number 
    Set Tix_Number.UID = @uid, ClaimDate = GETDATE()
    where TicketNumber = @TicketNumberInput

    /* Success - insert transaction message. Status = 1 */
    INSERT INTO [Tix_Transaction]
    ([Tix_Number],[UID], [status], [Datetime])
    VALUES
    (@TicketNumberInput, @UID, '1', GetDate())

    End
    ELSE

    /* Failed - insert transaction message. Status = 2 */
    INSERT INTO [Tix_Transaction]
    ([Tix_Number],[UID], [status], [Datetime])
    VALUES
    (@TicketNumberInput, @UID, '2', GetDate())

    PRINT 'INCORRECT RECORD'

谢谢您的帮助!!!

作为IF的一部分,您没有测试。 您需要测试,然后执行以下操作:

create procedure [dbo].[UpdateTicketNumber] 
@TicketNumberInput uniqueidentifier,  
@UID   int 

as  
IF EXISTS (SELECT NULL
    FROM [tixtowin].[dbo].[Tix_Number] 
    where @TicketNumberInput = Tix_Number.TicketNumber) 
BEGIN 

    PRINT 'CORRECT RECORD' 

    Update Tix_Number  
    Set Tix_Number.UID = @uid, ClaimDate = GETDATE() 
    where TicketNumber = @TicketNumberInput 

    /* Success - insert transaction message. Status = 1 */ 
    INSERT INTO [Tix_Transaction] 
    ([Tix_Number],[UID], [status], [Datetime]) 
    VALUES 
    (@TicketNumberInput, @UID, '1', GetDate()) 

END 
ELSE 
BEGIN 
    /* Failed - insert transaction message. Status = 2 */ 
    INSERT INTO [Tix_Transaction] 
    ([Tix_Number],[UID], [status], [Datetime]) 
    VALUES 
    (@TicketNumberInput, @UID, '2', GetDate()) 

    PRINT 'INCORRECT RECORD' 
END

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM