MSSQLSERVER_208
Si applica a: SQL Server
Dettagli
Attributo | Valore |
---|---|
Nome prodotto | SQL Server |
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 altre informazioni sull'impostazione del contesto del database, vedere USE (Transact-SQL).
Esistenza dell'oggetto nelle tabelle di sistema. Per verificare l'esistenza di una tabella o un altro oggetto con ambito schema, eseguire una query nella 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 altre informazioni sulle autorizzazioni per visualizzare i metadati degli oggetti, vedere Configurazione della visibilità dei metadati.
Presenza dell'oggetto nello schema predefinito dell'utente. Se questa condizione non si verifica, l'oggetto deve essere specificato nel formato in due parti schema_name.object_name. 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, se 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 restituiranno 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, usare la funzione di sistema Has_Perms_By_Name.
Vedi anche
USE (Transact-SQL)
Configurazione della visibilità dei metadati
HAS_PERMS_BY_NAME (Transact-SQL)