2009-05-11 8 views
1

je reçois l'erreur suivante:Erreur SQL Server: "Impossible d'utiliser les noms d'objets ou colonne vide"

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

et la commande de requête ressemble à:

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; 

étrange. Pourquoi cela arrive-t-il? J'utilise 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"/> 

Edit: Eh bien, la solution était de générer simplement et reconstruire la couche d'accès aux données et je suis bon pour aller.

+0

Pouvez-vous poster le code qui provoque l'erreur? Est-ce que cela se produit pour chaque requête ou juste une? –

+0

[code] page CmsPage = new CmsPage (CmsPage.Columns.PaKey, clé); page.PaLanguage = SelectedLanguage; page.Save(); [/ code] c'est tout ... Je suis à peu près sûr que c'est un paramètre de configuration qui n'a pas été défini. parce que ce code fonctionne sur d'autres sites. –

+0

OK semble que pas de requêtes SubSonic fonctionnent, est-ce exact? –

Répondre

1

Vous semblez utiliser un nom de 3 parties avec une partie vide, c'est-à-dire '[].'

0

Il semble que le texte de requête soit construit avec un schéma de table vide.

Les crochets vides [] doivent contenir quelque chose comme "dbo" pour rendre la requête syntaxiquement valide. Je ne connais pas assez SubSonic pour vous donner un exemple de code.

+0

oui, c'est très étrange. Je voudrais savoir pourquoi rien n'est inséré. –

+1

Affiche le code qui génère la requête erronée et quelqu'un pourrait vous le dire. Sans aucun code à regarder, c'est difficile à deviner. :) – Tomalak

+0

Le code est juste un truc subsonique standard. Je doute que n'importe qui devienne plus sage par le code que je viens de poster :) –

0

Je ne suis pas familier avec SubSonic, mais avez-vous essayé une requête plus simple pour tester si votre syntaxe est correcte? Cette requête fonctionne-t-elle même dans SQL Server (Management Studio/Query Analyzer)?

En regardant cela du point de vue de SQL Server, vous utilisez beaucoup trop de parenthèses. Si j'écrivais cette requête dans SQL Server, cela ressemblerait plus à ce que j'ai écrit ci-dessous. Je ne suis pas sûr de la variable @ pa_key0, cette requête fait-elle partie d'une procédure stockée ou est-ce que SunSonic remplace cette variable quand la requête est exécutée?

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;