Come posso interrogare il valore di un'opzione server in Sybase?
Domanda
Ad esempio, se volessi conoscere il valore corrente dell'opzione server quoted_identifier
, c'è una domanda che può darmi queste informazioni?
Soluzione
Alcune delle opzioni a livello di sessione sono disponibili come varbinary tramite la variabile @@ options. Alcuni consigli sull'interpretazione della maschera di bit sono forniti da
e
http://www.isug.com/Sybase_FAQ/ASE/code /sp_helpoptions.sql
Per le opzioni di sessione non documentate (come quoted_identifier), potrebbe essere necessario ricorrere alla sperimentazione. Ho eseguito quanto segue su un'istanza di Solaris x86 Sybase 15 e ho visto un cambiamento nel "terzo bit da destra" (contando da zero)
È una domanda interessante che non mi era mai capitata nei miei circa sette anni di amministrazione di Sybase.
pjjH
262:1> set quoted_identifier off 262:2> go 263:1> select @@options 263:2> go -------------------------- 80210000800f0144030010 (1 row affected) 264:1> set quoted_identifier on 264:2> go 265:1> select @@options 265:2> go -------------------------- 80210001800f0144030018 (1 row affected) select @@options as options into #foo
Altri suggerimenti
sp_dboption può darti un elenco di opzioni impostabili o effettivamente impostare l'opzione: -
Elenco opzioni impostabili
exec sp_dboption
imposta un'opzione
sp_dboption pubs2, "unique auto_identity index", true
Se vuoi solo elencare le opzioni impostate su un db, puoi usare sp_helpdb
sp_helpdb pubs2
Questo produce un set di risultati multipagina, ma il primo set ha una colonna chiamata 'status' che mostra tutte le opzioni 'vere' nel database nominato.
È possibile eseguire una query sul valore corrente impostato sull'opzione selezionata.
È nel codice della procedura sp_helpdb
.
Puoi controllare sp_helptext
sp_helpdb
sul database di sybsystemprocs ma è molto complicato.