Documentazione
Torna al sito web >

Errore di avvio

Errore all'avvio"riga con chiave duplicata"

EULANDA non si avvia. Viene visualizzato uno dei seguenti messaggi di errore. Questo errore si verifica solo per singoli utenti su PC specifici. L'errore si verifica solo in caso di aggiornamento di un programma, di un nuovo utente o di un nuovo hardware.

Errore nativo 512
La subquery ha restituito più di un valore. Questo non è permesso se la subquery segue =, !=, <, <=, > o >= o è usata come espressione.

errore nativo 512
Subquery restituito più di 1 valore. Questo non è consentito quando la subquery segue =, !=, <, <= , >, >= o quando la subquery è usata come espressione.

 

Demistificazione

Eseguire il seguente comando SQL finché l'area dei risultati non mostra che nessuna riga o nessuna riga è interessata:

update cnProcesses
set program_name = RTRIM(program_name) + 'X'
where id in (
select min(id)
from cnProcesses
group by
uid, sid,hostname,program_name,nt_domain,nt_username,net_address,net_library,loginame
having count(*)>1
)

Il proprietario del database è un utente Windows

EULANDA non si avvia, nemmeno come amministratore. All'avvio del programma viene visualizzato uno dei seguenti messaggi o un messaggio simile, se necessario anche in altre parti del programma:

Messaggio 15517
L'esecuzione come principale del database non è possibile
perché il principale "dbo" non è disponibile, non è possibile cambiare identità per questo
tipo di principale, oppure non
si dispone dell'autorizzazione richiesta.

Messaggio 15517
Non può essere eseguito come principale del database perché il
principale "dbo" non esiste, questo tipo di principale
non può essere impersonato, o non si ha il permesso.

In altri casi è possibile avviare EULANDA® , ma alcune funzioni, come ad esempio la copia degli indirizzi, non funzionano. Viene visualizzato il messaggio precedente o successivo:

Messaggio 15404
Non è stato possibile recuperare le informazioni sul gruppo Windows NT o sul dbo' utente, codice di errore 0xffff0002.

Messaggio 15404
Non è stato possibile ottenere informazioni su Windows NT groupser 'dbo', codice di errore 0xffff0002.

 

Possibile causa

Il proprietario del database non è l'amministratore SQL"sa" predefinito, ma un nome di accesso a Windows. Questo avviene, ad esempio, se durante la creazione del database non è stato immesso alcun nome di accesso. In questo caso, l'utente connesso a Windows viene memorizzato come proprietario del database.

Controllare il proprietario del database attualmente memorizzato

Per scoprire il proprietario del database attualmente memorizzato in SQL Management Studio, fare clic con il pulsante destro del mouse sul database e selezionare Proprietà.

In alternativa, è possibile determinare il proprietario utilizzando il seguente comando SQL. È possibile eseguire questa operazione, ad esempio, in EULANDA SQL Designer:

select suser_sname(owner_sid) 
from master.sys.databases 
where database_id = db_id()

select suser_sname(sid) 
from sys.database_principals 
where name = 'dbo'

evono portare a "sa". Anche se il caso che le spese differiscono è più raro.

Demistificazione

Cambiare il proprietario del database in "sa".

Per fare ciò, deve essere eseguito il seguente comando SQL. Prima di apportare qualsiasi modifica, eseguire un backup dell'intero sistema.

sp_changedbowner @loginame ="sa

Contesto tecnico

Alcune procedure lato server sono state create con la clausola EXECUTE AS, come nell'esempio seguente:

ALTER PROC [dbo].[ProzedurName]
with execute as owner
AS
SET NOCOUNT ON
(...)