小编Kev*_*uds的帖子

Dapper可以实现多个删除插入或更新为QueryMultiple吗?

我从Dapper官方文档中看过如下的QueryMultiple,很方便!

     var sql = @"
select * from Customers where CustomerId = @id
select * from Orders where CustomerId = @id
select * from Returns where CustomerId = @id";

using (var multi = connection.QueryMultiple(sql, new {id=selectedId}))
{
   var customer = multi.Read<Customer>().Single();
   var orders = multi.Read<Order>().ToList();
   var returns = multi.Read<Return>().ToList();
   ...
}
Run Code Online (Sandbox Code Playgroud)

现在,当我从Parent-table中删除记录时,我想从Child-table中删除相关记录.小巧玲珑吗?它看起来如下.

 var sql = @"delete from tb_role where roleid=@ID
                            delete from tb_rolepermission where roleid=@ID
                            delete from tb_userrole where roleid=@ID
        ";
        var param = new { ID=id };

 connection.EXECUTEMultiple(sql, param).......... …
Run Code Online (Sandbox Code Playgroud)

dapper

6
推荐指数
1
解决办法
5513
查看次数

如何使用CTE在SQL Server 2005中使用存储过程从分层数据中获取所有子项及其自身

我有很多类似的结构表,如下所示:

CREATE TABLE [dbo].[tbl_Hierarchy](
[ID] [int]  NOT NULL,
[ParentID] [int] NOT NULL,
[Text] [nvarchar](100)  NOT NULL,
--other field irrelevant to my question
)

INSERT INTO dbo.tbl_Hierarchy VALUES(1,0,'parent1')
INSERT INTO dbo.tbl_Hierarchy VALUES(2,0,'parent2')
INSERT INTO tbl_Hierarchy VALUES(3,1,'child1')
INSERT INTO tbl_Hierarchy VALUES(4,3,'grandchild1')
INSERT INTO  tbl_Hierarchy VALUES(5,2,'child2')
Run Code Online (Sandbox Code Playgroud)

你能帮我写一个包含两个带表名和ID参数的存储过程吗?

例如,执行时

EXEC usp_getChildbyID  tbl_Hierarchy, 1
Run Code Online (Sandbox Code Playgroud)

结果集应该是:

ID  Text        Level
1   parent1      1
3   child1       2
4   grandchild1  3
Run Code Online (Sandbox Code Playgroud)

非常感谢提前.

sql-server stored-procedures hierarchical common-table-expression

2
推荐指数
1
解决办法
8208
查看次数