Почему я не могу открыть одни и те же файлы базы данных (.mdbs) в нескольких средах одновременно? - PullRequest
0 голосов
/ 06 мая 2009

Этот вид отстой. Если я подключаюсь к БД SQL Server (файл .mdb) через проводник сервера VS.Net, я не могу подключиться к тому же файлу через SQL Server 2008 Management Studio в том же файле. Файл заблокирован.

Например, я получаю следующую ошибку из SQL Server Management Studio

СОЗДАН ФАЙЛ, обнаруженный во время работы системная ошибка 32 (процесс не может получить доступ к файлу, потому что он используется другим процессом.) в то время как пытаясь открыть или создать физический файл 'C: \ SQL Server 2000 Образцы баз данных \ NORTHWND.MDF '. (Microsoft SQL Server, ошибка: 5123)

Я играю с LINQ to SQL. Поэтому вам необходимо подключиться к проводнику сервера VS.Net, чтобы перетаскивать объекты таблицы и создавать файлы .dbml. Тем не менее, если я хочу запросить базу данных с использованием старой школы SQL из Management Studio, я не могу ... Я получаю вышеуказанную ошибку. То же самое, если я попытаюсь подключиться с помощью LINQPad (отличный инструмент ... но бесполезный благодаря этой раздражающей блокировке файла).

Так кто-нибудь знает, как я могу одновременно подключиться к одному и тому же файлу .mdb из нескольких программ, таких как проводник серверов VS.Net, студия управления SQL Server и LINQPad?

Спасибо!

Кстати, этот сайт просто потрясающий, и мне нравится тот факт, что они сделали это в ASP.Net и использовали LINQ to SQL для доступа к данным ... ладно, не по теме. К сожалению.

Ответы [ 2 ]

2 голосов
/ 06 мая 2009

Движок sql заблокирует файл после подключения к нему. ничто не мешает вам присоединить файл к экземпляру сервера SQL и затем подключиться к нему из нескольких приложений.

0 голосов
/ 06 мая 2009

Подсказка находится в названии «SQL Сервер » - кажется, что вы не можете присоединить БД к двум местам, что не является совершенно необоснованным, потому что вы не можете обслуживать ее дважды (учитывая, что сервер отвечает за такие вещи, как транзакции, журналы, блокировки и т. д.).

Итак ...

Вы хотите «запустить» базу данных в экземпляре SQL Server, а затем подключиться из Visual Studio к этому экземпляру, а затем к файлу, а не открывать файл напрямую (опция есть, потому что это упрощает некоторые модели развертывания), при которой Точка, вы должны получить то, что вам нужно.

В качестве альтернативы, вполне возможно использовать "старый школьный SQL" из Visual Studio - хотя я не знаю эквивалента LinqPad

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...