База данных SQL Server 2008 кажется недоступной - PullRequest
0 голосов
/ 10 марта 2012

У меня была эта текущая проблема раньше, и шаги, которые я использовал для ее решения в прошлом, не работают.Я работаю с базой данных в SSMS, а также через C # / .NET.Когда я сталкиваюсь с ошибкой на стороне C # после подключения к базе данных, база данных становится недоступной до тех пор, пока я не закрою Visual Studio, а затем в предыдущих ситуациях не перехожу на базу данных, а затем снова включаю.Я ищу больше идей / помощи, так как после выполнения этих вещей простой запрос:

SELECT TradeDate, Symbol, Clse
FROM tblDailyPricingAndVol

дает мне

Msg 208, Level 16, State 1, Line 1
Invalid object name 'tblDailyPricingAndVol'.

(тогда как он действителен, и я его набираюсразу после развертывания в обозревателе объектов в ssms).

Обновление : выполнение запроса с префиксом db / schema следующим образом:

SELECT Market.dbo.TradeDate
FROM Market.dbo.tblDailyPricingAndVol

Возвращает ошибку:

Сообщение 945, уровень 14, состояние 2, строка 1
База данных «Маркет» не может быть открыта из-за недоступных файлов или из-за недостатка памяти или дискового пространства.Подробности смотрите в журнале ошибок SQL Server.

Выполнение этого:

select name, state_desc, user_access_desc, is_read_only  from sys.databases

говорит мне, что моя БД подключена.Я закрыл Visual Studio и перезапустил мою машину прошлой ночью, затем перевел базу данных в автономный режим, затем включил, и я не вижу ничего похожего на «ожидание восстановления» и т. Д. До сих пор.Я хотел бы вернуться к работе и работать, и если кто-то может пролить свет на этот процесс подключения / отключения SQL Server 2008 с Visual Studio 2010, я был бы очень признателен.

1 Ответ

2 голосов
/ 10 марта 2012

A. Сделайте копию вашего файла Market.mdf и храните его в безопасном месте.
B. Выполните следующие команды в окне запроса:

USE [master];
GO
ALTER DATABASE Market SET SINGLE_USER WITH ROLLBACK IMMEDIATE; -- may fail
GO
DROP DATABASE Market; -- may fail depending on whether this db really exists
GO
CREATE DATABASE Market ON ( FILENAME = 
  'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Market.mdf'
) FOR ATTACH;
GO

Если это не удается из-за какой-либо ошибки в файле журнала (.ldf), попробуйте переместить файл market.ldf в другое место и запустите:

CREATE DATABASE Market ON ( FILENAME = 
  'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Market.mdf'
) FOR ATTACH_REBUILD_LOG;

Для предотвращения подобных проблем в будущем:

Не отсоединяйте свою базу данных.
Не подключайтесь к файлу MDF, используя настройки AttachDbFileName и User Instance.
Не устанавливайте базу данных на OFFLINE.
Не устанавливайте базу данных на автоматическое закрытие.

...