2009-05-11 14 views
1

私は次のエラーを取得:SQL Serverのエラー: "空のオブジェクトまたは列名を使用することはできません"

Cannot use empty object or column names. Use a single space if necessary. 
Msg 1038, Level 15, State 3, Line 1 

をし、クエリコマンドは次のようになります。確かに

SELECT TOP 100 PERCENT 
    [].[cms_page].[pa_id], [].[cms_page].[pa_key], 
    [].[cms_page].[pa_title], [].[cms_page].[pa_keywords], 
    [].[cms_page].[pa_description], [].[cms_page].[pa_header], 
    [].[cms_page].[pa_created], [].[cms_page].[pa_modified], 
    [].[cms_page].[pa_language] FROM [cms_page] 
WHERE 
    [cms_page].[pa_key] = @pa_key0 
ORDER BY 
    [pa_id] ASC; 

奇妙な。なぜこれが起こるのですか?私はSubSonic 2.1を使用しています。

のConnectionString:

<add name="OCDB" connectionString="Network Library=DBMSSOCN;Data Source=127.0.0.1,1433;Initial Catalog=test_db;User ID=test;Password=testpwd"/> 

編集:まあソリューションは、単にデータアクセス層を生成し、再構築することだったと私は行くためによかったです。

+0

エラーの原因となるコードを投稿できますか? これはすべてのクエリまたは1つのクエリで発生しますか? –

+0

[コード] CmsPageページ=新しいCmsPage(CmsPage.Columns.PaKey、key); page.PaLanguage = SelectedLanguage; page.Save(); [/ code]それは...私はそれが設定されていないいくつかの設定であると確信しています。このコードは他のサイトでも機能するためです。 –

+0

OKのように聞こえるSubSonicのクエリが機能しています、それは正しいですか? –

答えて

1

3つの部分名を空にしているようです(つまり、[]])。

0

クエリテキストが空のテーブルスキーマで構築されているかのように見えます。

これらの空の[]角括弧には、クエリを構文的に有効にするために「dbo」のようなものを含める必要があります。私はあなたにコードサンプルを与えるために十分にSubSonicについて知りません。

+0

はい、非常に奇妙です。私は何も挿入されていない理由を知りたいです。 –

+1

障害のあるクエリを生成するコードを表示し、誰かがあなたに伝える可能性があります。見るべきコードがなければ、それを推測するのは難しいです。 :) – Tomalak

+0

コードはちょうど標準の亜音速のものです。私はちょうど私が投稿したコードで誰もがずっと賢明になるだろうと思う:) –

0

私はSubSonicに精通していませんが、あなたの構文が正しいかどうかをテストするために簡単なクエリを試しましたか?このクエリはSQL Server(Management Studio/Query Analyzer)でも動作しますか?

SQL Serverの観点から見ると、あまりにも多くの角括弧が使用されています。 SQL Serverでそのクエリを作成していた場合、以下のようになります。変数@ pa_key0についてはわかりませんが、このクエリはストアドプロシージャの一部ですか、またはクエリが実行されたときにSunSonicはこの変数を置き換えますか?

SELECT 
    pa_id, 
    pa_key, 
    pa_title, 
    pa_keywords, 
    pa_description, 
    pa_header, 
    pa_created, 
    pa_modified, 
    pa_language 

FROM 
    cms_page 

WHERE 
    pa_key = @pa_key0 

ORDER BY 
    pa_id ASC; 
関連する問題