Domanda: Sto provando a usare il metodo apri tabella/chiudi tabella per creare la mia nuova tabella SQL
con Dexterity. Tuttavia, nell'istruzione "apri tabella", viene restituito SQL errore: "Un'operazione aperta sulla tabella xxx non è riuscita ad accedere ai SQL
dati". Quando faccio clic su Altre informazioni, viene visualizzato il messaggio "[Microsoft][Odbc SQL Server Driver][SQL Server] Esiste già un oggetto denominato PKADSY4997 nel database. [Microsoft] [Driver SQL Server ODBC] [SQL Server] Impossibile creare un vincolo. Vedere gli errori precedenti".
Il nome fisico della tabella è PKADSY4997, che non esiste né le stored procedure zDP per questa tabella. Cosa potrebbe causare l'errore?
Risposta: In questo caso, la tabella era stata creata ed eliminata in precedenza, ma per qualche motivo un vincolo sulla tabella
non era stato rimosso.
In Query Analyzer è stata eseguita questa query:
select * from sysobjects where name = 'PKADSY4997' L'ID restituito era
151193332 e il parent_obj era 173243672.
Osservando la colonna parent_obj, è stata eseguita la query di selezione sull'oggetto padre e non è stato possibile trovarla. Si tratta quindi di un vincolo orfano come previsto.
A quel punto, era necessario eliminare il vincolo orfano. Ma prima di tutto, è necessario modificare un'impostazione.
Nella finestra SQL Server proprietà è presente una casella di controllo che deve essere contrassegnata per consentire l'eliminazione di questo vincolo, che consente di apportare modifiche direttamente ai cataloghi di sistema.
Ora da Query Analyzer: eliminare da
sysobjects dove name = ''PKADSY4997' In questo modo il vincolo è stato rimosso e la tabella potrebbe essere ri-creata correttamente da
Dexterity.
Questo articolo è stato ID documento TechKnowledge:26107