Condividi tramite


MSSQLSERVER_208

Dettagli

Nome prodotto

SQL Server

Versione prodotto

10.0

Numero di build del prodotto

 

ID evento

208

Origine evento

MSSQLSERVER

Componente

SQLEngine

Nome simbolico

SQ_BADOBJECT

Testo del messaggio

Il nome di oggetto '%.*ls' non è valido.

Spiegazione

Non è possibile individuare l'oggetto specificato.

Possibili cause

L'errore può essere causato da uno dei problemi seguenti:

  • L'oggetto non è stato specificato correttamente.

  • L'oggetto non esiste nel database corrente oppure in quello specificato.

  • L'oggetto esiste, ma potrebbe non essere esposto all'utente. È possibile ad esempio che l'utente non disponga di autorizzazioni sull'oggetto oppure l'oggetto è stato creato all'interno di un'istruzione EXECUTE, ma l'accesso è stato eseguito al di fuori dell'ambito dell'istruzione EXECUTE.

Azione utente

Verificare le informazioni seguenti e correggere l'istruzione in base alle esigenze.

  • Correttezza dell'ortografia dell'oggetto.

  • Correttezza del contesto di database corrente. Se per l'oggetto non è specificato un nome di database, l'oggetto deve esistere nel database corrente. Per ulteriori informazioni sull'impostazione del contesto di database, vedere USE (Transact-SQL).

  • Esistenza dell'oggetto nelle tabelle di sistema. Per verificare l'esistenza di una tabella o di un altro oggetto con ambito schema, eseguire una query sulla vista del catalogo sys.objects. Se l'oggetto non è presente nelle tabelle di sistema, significa che è stato eliminato o l'utente non dispone delle autorizzazioni necessarie per visualizzare i metadati dell'oggetto. Per ulteriori informazioni sulle autorizzazioni per visualizzare i metadati dell'oggetto, vedere Configurazione della visibilità dei metadati.

  • Presenza dell'oggetto nello schema predefinito dell'utente. Se questa condizione non è verificata, l'oggetto deve essere specificato nel formato in due parti schema_name.object_name. Per ulteriori informazioni sugli schemi, vedere Separazione tra schema e utente. Si noti che è sempre necessario richiamare funzioni a valori scalari utilizzando almeno un nome in due parti.

  • Distinzione tra maiuscole e minuscole delle regole di confronto del database.

    Quando in un database vengono utilizzate regole di confronto con distinzione tra maiuscole e minuscole, il nome dell'oggetto deve corrispondere alla combinazione di maiuscole e minuscole dell'oggetto nel database. Ad esempio, quando un oggetto è specificato come MiaTabella in un database con regole di confronto che rispettano la distinzione tra maiuscole e minuscole, le query che si riferiscono all'oggetto come miatabella o Miatabella restituirà l'errore 208 poiché i nomi degli oggetti non corrispondono.

    Per verificare le regole di confronto del database, eseguire l'istruzione seguente.

    SELECT collation_name FROM sys.databases WHERE name = 'database_name';
    

    L'abbreviazione CS nel nome delle regole di confronto indica che le regole di confronto rispettano la distinzione tra maiuscole e minuscole. Ad esempio, Latin1_General_CS_AS è una regola di confronto con distinzione tra maiuscole e minuscole e distinzione tra caratteri accentati e non accentati, mentre CI indica una regola di confronto senza distinzione tra maiuscole e minuscole.

  • Autorizzazioni di accesso all'oggetto concesse all'utente. Per verificare le autorizzazioni di cui l'utente dispone sull'oggetto, utilizzare la funzione di sistema Has_Perms_By_Name.