2010-07-23 8 views
5

¿Puedo configurar NOCOUNT para que esté APAGADO por defecto para una base de datos en particular?¿Establecer NOCOUNT OFF en el nivel de la base de datos?

Lo necesito para NHibernate (si está activado, obtengo excepciones al guardarlo). Puedo ver la configuración para deshabilitarlo para todo un servidor (donde está activado), pero estamos compartiendo el servidor con otras bases de datos. ¿Hay alguna manera de configurarlo en OFF solo para mi base de datos?

¿O hay una configuración NHibernate que hará esto por mí? (He trabajado alrededor de esto por ahora con un DriverConnectionProvider personalizado que emite el comando cada vez que crea una conexión. Funciona bien, pero se siente un poco incómodo)

Estoy usando SQL Server 2000, por cierto.

Gracias Matt

Respuesta

0

Se puede utilizar el método de la interfaz NH IInterceptorOnPrepareStatement modificar las sentencias SQL generadas por NH para incluir un "conjunto NOCOUNT OFF" declaración en la parte superior de cada consulta SQL emitido por su aplicación.

Some bloke called Dave reconoce que es "malo" hacerlo, pero podría ser su respuesta. El enlace lo lleva a la página de su blog que describe cómo implementarlo.

Mi reserva para hacerlo es crear una dependencia en su aplicación ejecutándose contra un servidor de base de datos que entiende "configurar nocount off" - en otras palabras, estaría ignorando el dialecto configurado.

-1

El conjunto NOCOUNT se establece en el nivel de base de datos. Ejecute a continuación consultas una tras otra por separado. Esto da una mejor idea.

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

*** Comando (s) completado con éxito.

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

*** (1 fila (s) afectado)

Cuestiones relacionadas