Error al querer eliminar un job de SQL Server 2005

Al intentar eliminar un Job del SQL Server 2005 puede aparecer el siguiente mensaje de error

The DELETE statement conflicted with the REFERENCE constraint “FK_subplan_job_id”. The conflict occurred in database “msdb”, table “dbo.sysmaintplan_subplans”, column ‘job_id’.
The statement has been terminated. (Microsoft SQL Server, Error: 547)

nos indica que no se puede eliminar un job por problemas con los planes de mantenimiento.

Para poder resolver este problema y poder eliminar el Job les dejo el siguiente Script

declare @job_name varchar(500)

set @job_name = N’tujob’ ;

 

USE [msdb]

delete sysmaintplan_log

FROM sysmaintplan_subplans AS subplan

INNER JOIN

sysjobs_view AS jobs ON subplan.job_id = jobs.job_id INNER JOIN

sysmaintplan_log ON subplan.subplan_id = sysmaintplan_log.subplan_id

WHERE (jobs.name = @job_name)

 

delete sysmaintplan_subplans

FROM sysmaintplan_subplans AS subplan INNER JOIN

sysjobs_view AS jobs ON subplan.job_id = jobs.job_id

WHERE (jobs.name = @job_name)

 

delete

from msdb.dbo.sysjobs_view where name = @job_name

Como evitar que se acceda a nuestro SQL vía Excel

En nuestras empresas o en clientes hay muchas veces que tenemos la necesidad de restringir el acceso a nuestro SQL desde ciertas aplicaciones como podría ser el paquete Office. A partir de SQL Server 2005 y con la incorporación de los triggers DDL podemos hacer esto de forma bastante simple.

Aquí les dejo un ejemplo de trigger DDL a nivel servidor de base de datos que no permitirá login desde aplicaciones Office.

CREATE TRIGGER [connection_limit_trigger]
ON ALL SERVER
FOR LOGON
AS

set nocount on

– con este trigger controlamos quienes no pueden hacer login a SQL

BEGIN
IF app_name() like ‘%Office%’
    ROLLBACK;
END;
GO

SET ANSI_NULLS OFF
GO

SET QUOTED_IDENTIFIER OFF
GO

ENABLE TRIGGER [connection_limit_trigger] ON ALL SERVER
GO

Error inesperado en Sharepoint consumiendo reportes de Reporting Service

Si tienen integrado a Sherepoint (ya sea el portal o bien el services) son Reporting services y ejecutan un reporte que dura mas de dos minutos les aparecerá del lado de Sharepoint el siguiente error: Error inesperado o bien “An unexpected error has occurred” en ingles.

Por defecto existe un timeout a nivel ASP que es de 2 minutos, para cambiar este valor habrá que hacer los siguientes pasos desde el servidor de Sharepoint

  1. Abrir el archivo web.config de la aplicación sharepoint (por ejemplo \inetpub\wwwroot\wss\VirtualDirectories\80)
  2. Buscar dentro del archivo httpRuntime
  3. Agregar executionTimeout con un valor en segundos deseado, por ejemplo 1800

<httpRuntime maxRequestLength="51200" executionTimeout = "1800" />

Esto nos permitirá extender el timeout del sharepoint haciendo que si tenemos reportes con una duración mayor a dos minutos los podamos ejecutar sin errores. Les recomiendo poner 1800 segundos ya que también ese valor es el predeterminados a nivel Reporting Service para un timeout de Reporte.

Aquí les dejo el link original de donde he sacado la solución y me ha funcionado perfecto.

¿Donde esta el SAC (Surface Area Configuration) en SQL 2008?

Al instalar muy contentos nuestro SQL Server 2008 nos vamos a encontrar con varias novedades muy buenas para los administradores y desarrolladores. Pero también nos vamos a encontrar con algunas cosas que antes teníamos y ahora no , como por ejemplo la herramienta  SAC (Surface Area Configuration) de 2005 la cual nos permitía entre otras cosas habilitar las conexiones entrantes, el CLR, DAC, etc.

Entonces como hacemos en 2008 si no disponemos de esta herramienta? Bueno siempre tenemos la posibilidad de usar sp_configure.

Pero si no queremos usar desde código TSQL y si hacerlo de forma gráfica entonces ahora debemos hacerlo así.

  1. Entramos a nuestro Management Studio de 2008
  2. Luego de entrar e iniciar sesión en un servidor, hacemos click alterno del mouse sobre el nombre del servidor y luego vamos a la opción del menú “Facet”

Al hacer esto entraremos a la siguiente pantalla

image

Aquí simplemente debemos seleccionar en Facet la opción de “Surface Area Configuration” y ahora si podemos configurar las opciones de forma gráfica :)