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.
Vedere anche