2010-07-23 2 views
5

Posso impostare NOCOUNT su OFF per impostazione predefinita per un determinato database?Impostare NOCOUNT OFF a livello di database?

Ne ho bisogno per NHibernate (se è ON, ottengo eccezioni durante il salvataggio). Riesco a vedere l'impostazione per disabilitarlo per un intero server (dove è impostato su ON), ma stiamo condividendo il server con altri database. C'è un modo per impostarlo su OFF solo per il mio database?

Oppure c'è un'impostazione di NHibernate che farà questo per me? (Ho lavorato intorno ad esso con un DriverConnectionProvider personalizzato che emette il comando ogni volta che crea una connessione. Funziona ok, ma sembra un po 'imbarazzante)

Sto usando SQL Server 2000, btw.

Grazie Matt

risposta

0

Si potrebbe utilizzare il metodo dell'interfaccia NH IInterceptorOnPrepareStatement di modificare le istruzioni SQL NH-generati per includere un "set NOCOUNT off" l'istruzione nella parte superiore di ogni query SQL emesso dalla vostra applicazione.

Some bloke called Dave calcola che è "malvagio" farlo, ma potrebbe essere la vostra risposta. Il link ti porta alla pagina del suo blog che descrive come implementarla.

La mia prenotazione a tale proposito è la creazione di una dipendenza dell'applicazione in esecuzione su un server database che comprende "set nocount off", in altre parole, si ignorerebbe il dialetto configurato.

-1

Set NOCOUNT è impostato a livello di DB. Esegui di seguito le query una dopo l'altra separatamente. Questo dà un'idea migliore.

SET NOCOUNT ON 
Update Users set FirstName='XXXX' where Id='YYYY'; 

*** Comando (s) completata con successo.

SET NOCOUNT OFF 
Update Users set FirstName='XXXX' where Id='YYYY'; 

*** (1 row (s) affected)