小编Avi*_*hek的帖子

如何在SQL Server 2008中实现自治事务?

我正在尝试在 SQL Server 2008 过程中实现自治事务。该过程将只有两个嵌套事务,将InnerTransaction提交但OuterTransaction将回滚。我见过很多成功实现逆向过程的例子。但我还没有找到任何解决我的问题的方法。

示例表脚本

create table testTab1(id int identity(1,1) primary key, name varchar(100));
create table testTab2(id int , name varchar(100));
insert into testTab1(name) values('User1'),('User2'),('User3');
Run Code Online (Sandbox Code Playgroud)

程序示例代码

CREATE PROCEDURE [dbo].[testSP2]
AS
BEGIN
SET IMPLICIT_TRANSACTIONS ON
BEGIN TRAN 
    insert into testTab1(name) values('User4'),('User5'),('User6');
    IF @@ROWCOUNT>0
        BEGIN
            SAVE TRAN InnerTran
                insert into testTab2(id,name) values(1,'User4'),(2,'User5'),(3,'User6');
                --PRINT 'NUMBER OF TRAN='+CAST(@@TRANCOUNT AS VARCHAR(5)) 
            COMMIT TRAN InnerTran
        END                 
ROLLBACK
SET IMPLICIT_TRANSACTIONS OFF
END
Run Code Online (Sandbox Code Playgroud)

我想要的输出是

在此输入图像描述

t-sql database sql-server transactions sql-server-2008

5
推荐指数
1
解决办法
6237
查看次数

如何在mysql中为每个客户选择最后订单日期

table_customers(customer_id, customer_name)
table_orders(customer_id, order_id, order_datetime)
Run Code Online (Sandbox Code Playgroud)

我想为last order date每个customer. 如果顾客没有下任何订单,请00-00-0000为她退货。

这是我的查询。

select C.customer_id , date(O.order_datetime) 
from table_customers C 
INNER JOIN table_orders O ON C.customer_id = O.customer_id 
group by O.customer_id order by O.order_datetime desc limit 1;
Run Code Online (Sandbox Code Playgroud)

它仅返回最后一位客户的最后订单日期。

如何获取所有客户的最后订单日期?

mysql sql database group-by

0
推荐指数
1
解决办法
7313
查看次数