首页 > 解决方案 > C# & SQL Server 存储过程多个插入动作,影响?

问题描述

我有一个应用程序,它使用存储过程将数据表插入到我的 SQL Server 中。在运行时,它会访问数据库,使用一个存储过程和一个表来做几个插入动作。但它如何影响我的数据库?

例如我有

在运行时,所有 dt 都在其自己的任务中处理。

每个任务都会进行一些数据操作,最后通过存储过程将它们存储到 SQL Server 中tb1

但是,如果我这样做,会有什么影响呢?这些数据表会一个接一个地追加吗?

这里有一些代码:

public static void CreateTasks(string sInput, string sOutput)
{          
    List<Task> Tasks = new List<Task>();
    string Filename = Path.GetFileName(sInput).Replace(" ", "_").Replace("\\", "_");            
    ...

    // Stores datatable via stored procedure into SQL Server
    Tasks.Add(Task.Factory.StartNew(() => StoreDataInSQL(sInput, sOutput, Filename)));            
    ...

    Task.WaitAll(Tasks.ToArray());
}

标签: c#sql-server

解决方案


我对您的问题的解释:“当您同时执行/对同一个表进行多次更改时会发生什么”。

答案:这取决于....取决于很多事情,尤其是您的 SP 代码的工作原理(以及如何工作)。

在简单插入的情况下:它将附加所有插入。

这看起来像是一篇关于表锁定和事务的好文章:https ://docs.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-locking-and-row-versioning-guide?view= sql-server-2017


推荐阅读