0

私は以前この問題を抱えていましたが、これまで解決していた手順は機能していません。私はSSMSのデータベースとC#/ .NETを使って作業しています。データベースに接続した後でC#側のバグに遭遇すると、Visual Studioを閉じてから以前の状況でdbをオフラインにしてから再度オンにするまで、dbにアクセスできなくなります。それが有効である、と私はそれを右に展開した後、それを入力するのに対し(SQL Server 2008データベースが利用できないようです

SELECT TradeDate, Symbol, Clse 
FROM tblDailyPricingAndVol 

くれ

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

を与える:私は、単純なクエリは、それらの事をやった後にするので、/ヘルプより多くのアイデアを探していますssmsのオブジェクトエクスプローラで)。

更新: のようなDB /スキーマの接頭辞で、そのクエリを実行:

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

エラーを返します:

この実行

Msg 945, Level 14, State 2, Line 1
Database 'Market' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details.

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

が私に語ったが私のdbはオンラインです。私はビジュアルスタジオを閉めて昨晩マシンを再起動した後、オフラインでdbを取得しましたが、今日も「回復待ち」などは見られません。私はバックアップを取りたいと思います。SQL Server 2008をVisual Studio 2010に接続/切断するこのプロセスについて誰かが分かりやすく説明してくれれば、大変感謝しています。

+0

正しいデータベースになっていますか?オブジェクトエクスプローラで何かを展開しただけでは、クエリウィンドウのデータベーススコープが自動的に更新されるわけではありません。スキーマ接頭辞を必ず使用するようにしてください。 'FROM dbo.tblDailyPricingAndVol' ... –

+0

ありがとうございました。私はスキーマ接頭辞を使用して結果を反映するために自分の投稿を更新します。 – StatsViaCsh

+0

[OK]をクリックし、Marketデータベースに関係するものについてエラーログを見ましたか? –

答えて

2

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; 


AttachDbFileNameUser Instanceの設定を使用してMDFファイルに接続しないでください。
データベースをOFFLINEに設定しないでください。
データベースを自動クローズに設定しないでください。

+0

ありがとうございます。私はまだ森の外に出ていません。私はdbをコピーしました。あなたのスクリプトを実行して、それが落ちた後、ファイルが見つからないというエラーが表示されました。 .mdfファイルを\ DATAフォルダにコピーして、db文を作成し直しました。それは成功しました。ログファイルに関するプロンプトは表示されませんでしたが、新しいファイルが作成されたというメッセージが表示されます。今、元の投稿から同じ選択クエリを再入力し、同じエラーが表示されます。 "メッセージ208、レベル16、状態1、行1 無効なオブジェクト名 'tblDailyPricingAndVol'。" – StatsViaCsh

+0

さて、この表は実際には存在しない可能性はありますか?例えば。あなたのMDFファイルは、このテーブルが作成される前のコピーか、間違っていますか?アクセス権がありますか? Object Explorerで右クリックしてSELECT TOP 1000を選択するとどうなりますか? –

+0

SELECT TOP 1000はレコードを返します...もしそれが愚かだった場合には、私はテーブル名を私のクエリにコピーして貼り付けました。同じエラー。以下はクエリです:SELECT MAX(Market.dbo.TradeDate) FROM Market.dbo.tblDailyPricingAndVol。私たちがデータベースを再作成する前とは異なり、少なくともテーブルはインテリセンスで登場しました。しかし、実行時に、エラー。 – StatsViaCsh