这种很糟糕。如果我通过VS.Net的服务器资源管理器连接到SQL Server数据库(.mdb文件),那么我无法通过SQL Server 2008 Management Studio在同一文件中连接到同一文件。该文件已被锁定。
例如,我从SQL Server Management Studio
收到以下错误CREATE FILE遇到了操作 系统错误32(过程不能 访问该文件,因为它正在 另一个进程使用。)while 试图打开或创建 物理文件'C:\ SQL Server 2000 示例数据库\ NORTHWND.MDF'。 (Microsoft SQL Server,错误:5123)
我正在玩LINQ to SQL。因此,您需要连接到VS.Net服务器资源管理器以拖动表对象并创建.dbml文件。但是,如果我想使用管理工作室的旧学校SQL查询数据库,我不能......我得到上述错误。同样,如果我尝试使用LINQPad进行连接(很棒的工具...但由于这个恼人的文件锁无用)。
那里的任何人都知道如何同时从VS.Net的服务器资源管理器,SQL Server的管理工作室和LINQPad等多个程序连接到同一个.mdb文件?
谢谢!
顺便说一句,这个网站简直太棒了,我喜欢他们在ASP.Net中创建它并使用LINQ to SQL进行数据访问的事实......好吧,关闭主题。遗憾。
答案 0 :(得分:2)
一旦连接到该文件,sql引擎将锁定该文件。没有什么能阻止您将文件附加到SQL Server实例,然后从多个应用程序连接到它。
答案 1 :(得分:0)
线索的名称是“SQL 服务器” - 似乎您无法将数据库附加到两个不完全不合理的地方,因为您无法将其提供两次(鉴于此服务器负责事务,日志,锁定等事务。
因此...
您希望在SQL Server实例中“运行”数据库,然后从Visual Studio连接到该实例,然后再连接到该文件,而不是直接打开文件(该选项是因为它简化了某些部署模型),指出你应该得到你需要的东西。
顺便说一下,它完全有可能从Visual Studio中的“旧学校SQL” - 虽然我不知道相当于LinqPad