多个应用程序能够同时访问SQL Server中的同一个数据库?

时间:2012-08-21 11:49:44

标签: c# sql-server

我是.NET,C#和SQL Server的新手。

我需要使用C#开发套接字应用程序。该应用程序应该insertdeleteupdate等数据库中的数据与某些请求相关。

我需要使用C#开发另一个Windows服务应用程序,它通过http将数据库中的数据发送到Web应用程序。

这两个应用程序在同一系统中运行。该数据库是SQL Server。两个应用程序都使用相同的数据库。

我不确定当一个应用程序在数据库中删除或插入数据时,另一个应用程序是否仍然能够同时访问数据库。

3 个答案:

答案 0 :(得分:3)

Sql Server可以正常处理多个请求。每个连接的客户端都会获得不同的spid

但是,由您的sql server代码(批处理或sprocs)来处理通过隔离级别和事务处理的数据并发问题。因此,为了控制一个用户读取数据而其他用户正在更新,删除等...,您需要使用隔离级别和锁定。

隔离级别:

http://msdn.microsoft.com/en-us/library/aa213034(v=sql.80).aspx

另外:http://dbalink.wordpress.com/2008/05/27/isolation-levels-and-locks-in-sql-server-2005/

良好的交易记录:

http://aspnet.4guysfromrolla.com/articles/072705-1.aspx

答案 1 :(得分:0)

我认为简单的答案是肯定的 - 多个应用程序/人可以同时访问数据库。

您可能想要了解数据库中的事务和并发性:

http://en.wikipedia.org/wiki/Atomicity_(database_systems

http://msdn.microsoft.com/en-us/library/cs6hb8k4(v=vs.80).aspx

答案 2 :(得分:0)

可以根据需要使用多个应用程序访问同一个sql server数据库。如果您担心一个应用程序可以尝试同时读取另一个应用程序正在更改的数据,请阅读有关事务和隔离的信息。但是在很短的时间内,如果你做了一个小的原子变化,只需要一行sql代码,你现在可能不应该关心这个。