Sql 在一个存储过程中进行多个插入和选择
我想创建一个将 A) 检查TicketNumber输入是否在表Tix_number.TicketNumber中 B) 如果确实存在,则更新记录,将UID设置为@UID,并将Claimdate设置为GetDate() 而且 C) 将记录插入另一个表(事务日志表) 如果记录确实存在,只需将状态为2(失败)的记录添加到事务日志中即可 到目前为止,这是我的代码,但是检查IF语句、更新记录和插入另一条记录似乎没有问题。如何向语句中添加多个检查。开始和结束似乎不起作用Sql 在一个存储过程中进行多个插入和选择,sql,sql-server,tsql,stored-procedures,Sql,Sql Server,Tsql,Stored Procedures,我想创建一个将 A) 检查TicketNumber输入是否在表Tix_number.TicketNumber中 B) 如果确实存在,则更新记录,将UID设置为@UID,并将Claimdate设置为GetDate() 而且 C) 将记录插入另一个表(事务日志表) 如果记录确实存在,只需将状态为2(失败)的记录添加到事务日志中即可 到目前为止,这是我的代码,但是检查IF语句、更新记录和插入另一条记录似乎没有问题。如何向语句中添加多个检查。开始和结束似乎不起作用 create procedure [d
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
你的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